我想构建一个简单的单一视图应用程序,它在每次图像更改之间运行时间延迟的图像选择的无限幻灯片放映。我为此编写的代码如下。我试图把它放到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