アプリがビューをユーザーに表示する前に、たとえば、5ミリ秒のカスタム遅延で画像の配列をロードしたいとします。任意のヘルプ? スプラッシュ画面にカスタム遅延を持つ画像の配列を読み込む方法Swift 3 Xcode 8?
私はのUIViewControllerにUIImageViewを使用しました、これは私のコードです:
import UIKit
class CustomViewController: UIViewController {
@IBOutlet weak var imageView: UIImageView!
var logoImage: [UIImage] = [
UIImage(named: "splash_logo_1.png")!,
UIImage(named: "splash_logo_2.png")!,
UIImage(named: "splash_logo_3.png")!,
UIImage(named: "splash_logo_4.png")!,
UIImage(named: "splash_logo_5.png")!,
UIImage(named: "splash_logo_6.png")!,
UIImage(named: "splash_logo_7.png")!,
UIImage(named: "splash_logo_8.png")!,
UIImage(named: "splash_logo_9.png")!,
]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
DispatchQueue.main.asyncAfter(deadline: .now() + 0.8 , execute: {
// Put your code which should be executed with a delay here
for i in 1..<self.logoImage.count
{
let image = self.logoImage[i]
self.imageView.image = image
}
})
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
アプリケーションを構築した後、それが唯一の最後の画像(plash_logo_9.png)を示しています。
だから問題はどこですか?
、これを試してみてください、私はviewDidAppearとのviewDidLoadの最初のイメージが、まだ同じ問題に私のコードを置きます。 –
@dirtydaneeに感謝しますが、私が作ったとき(遅延= 0.8)、あなたは何をしましたか(遅延= 0.8)、ショーは狂った速さになりましたか? –
まあ、遅延を増やさない場合、各ディスパッチキューは同時に起動されます。 'now()'から0.8秒です。しかし、キュー間の遅延を増やし続けると、最初のキューは0.8遅延、2番目は0.8 + 0.8、3番目の1.6 + 0.8などで起動されます。このようにして、画像は次のように変化していきます一定の遅延。減少をスピードアップするには、0.8を減速させるが、常にお互いを続けていく。 – dirtydanee