앱이 사용자에게보기를 보여주기 전에 이미지 정렬을로드하고 싶습니다 (예 : 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 지연, 0.8 + 0.8, 세 번째 1.6 + 0.8 등의 두 번째 대기열과 함께 실행됩니다. 이렇게하면 이미지가 변경되는 것을 볼 수 있습니다. 어떤 지연. 감소 속도를 높이려면 0.8을 줄이십시오. 그러나 항상 서로를 계속 유지하십시오. – dirtydanee