Swift 3 - 一次运行两个函数

时间:2017-07-11 02:53:16

标签: ios swift

在我创建的应用的初始屏幕上,向用户显示两个选项(注册和登录),必须按下这两个选项才能继续。屏幕中间是一个徽标,上面是应用程序的名称。

我希望连续不断地在多种颜色之间进行背景淡化,但我遇到的问题是当颜色转换时按钮停止工作(这是所有时间)。

我目前的代码:

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吗?

1 个答案:

答案 0 :(得分:2)

原因是您不允许用户互动。尝试将.curveEaseInOut替换为[.allowUserInteraction, .curveEaseInOut]