我想構建一個簡單的單一視圖應用程序,它在每次圖像更改之間運行時間延遲的圖像選擇的無限幻燈片放映。我爲此編寫的代碼如下。我試圖把它放到viewDidLoad和viewDidAppear中,但屏幕保持空白,我猜是因爲該函數永遠無法完成,因爲無限循環。Swift:如何永久重複代碼
我在iOS和tkinter之前學了一點Python,你的代碼會進入主循環。但我不太清楚如何在Swift中執行相應的操作。請問有人可以解釋爲什麼我遇到這個問題以及如何在Swift中執行此操作。謝謝。
var arrayimages: [UIImage] = [UIImage(named: "charizard")!,UIImage(named:"Flying_Iron_Man")!]
var x: Int = 0
var images: UIImage
let arraycount = arrayimages.count
repeat{
images = arrayimages[(x % arraycount)]
sleep(1)
slideshow.image = images
x++
} while true
注:幻燈片是一個圖像視圖插座。
不同時(真的)不工作? – dannybess
這將不起作用的原因是因爲代碼正在主線程中執行,主線程是UI工作的線程,如果您阻止UI無法更新的主線程。通過執行無限循環,無限期地阻止主線程,所以UI永遠不會更新,並且圖像不會更改。建議您使用NSTimer的答案是很好的答案,但我想我會解釋爲什麼它不按您期望的方式工作。 – EmilioPelaez