在我创建的应用的初始屏幕上,向用户显示两个选项(注册和登录),必须按下这两个选项才能继续。屏幕中间是一个徽标,上面是应用程序的名称。
我希望连续不断地在多种颜色之间进行背景淡化,但我遇到的问题是当颜色转换时按钮停止工作(这是所有时间)。
我目前的代码:
override func viewDidAppear(_ animated: Bool) {
randomColor()
}
@IBAction func registerButton(_ sender: UIButton) {
print("New user is registering")
}
@IBAction func signInButton(_ sender: UIButton) {
print("Returning user is signing in")
}
func randomColor() {
let possibleColors = [standardRed, standardAqua, standardBlue, standardPink, standardGreen, standardOrange, standardPurple, standardYellow]
let randomIndex = Int(arc4random_uniform(UInt32(possibleColors.count)))
let randomColor = possibleColors[randomIndex]
UIView.animate(withDuration: 3.0, delay: 0.0, options: .curveEaseInOut, animations: {
self.view.backgroundColor = randomColor
}, completion: { finished in
self.randomColor()
})
}
// 'standardXXX' are just global variable UIColors
我认为因为功能' randomColor'一直开始,没有其他功能可以启动?
是否有任何解决方案,以便' randomColor()'可以重复自己,同时还允许使用其他IBActions吗?
答案 0 :(得分:2)
原因是您不允许用户互动。尝试将.curveEaseInOut
替换为[.allowUserInteraction, .curveEaseInOut]
。