从第二个视图返回到一个视图时,UIButton无法单击

时间:2017-06-30 04:53:28

标签: ios swift uibutton

我有一个应用程序。我假设有两个观点有问题。第一个视图有三个按钮排列在另一个之下。单击三个中的任何一个将带我们到第二个视图,其中包含3个tableview单元格。

问题是,如果我们转到第二个视图并返回到第一个视图,则第一个视图中的按钮不可点击。我附上两个视图的屏幕。

查看1:有3个按钮。 View 1: Three buttons

视图2:这些是表视图单元格。 View 2: Three table view cells

注意:表格视图单元格是可点击的。我们按下关闭按钮返回第一个视图。在第二个视图的左上角。

**问题简而言之:如果我们转到视图2,请单击“X”关闭按钮,视图1中的三个按钮,即fb,G +和电子邮件不可点击。 **

以下是第一个视图中三个按钮的代码。

@IBAction func firstBtnAction(_ sender: Any) {
    let bounds = self.firstBtn.bounds
    UIView.animate(withDuration: 1.0, delay: 0.0, usingSpringWithDamping: 0.2, initialSpringVelocity: 10, options: [], animations: {
        self.firstBtn.bounds = CGRect(x: bounds.origin.x - 20, y: bounds.origin.y, width: bounds.size.width + 20, height: bounds.size.height)
        self.firstBtn.isEnabled = false
    }, completion: nil)

    goaltype = "Conversion"

    UserGoal()

}

@IBAction func secondBtnAction(_ sender: Any) {
    let boundss = self.secondBtn.bounds
    UIView.animate(withDuration: 1.0, delay: 0.0, usingSpringWithDamping: 0.2, initialSpringVelocity: 10, options: [], animations: {
        self.secondBtn.bounds = CGRect(x: boundss.origin.x - 20, y: boundss.origin.y, width: boundss.size.width + 20, height: boundss.size.height)
        self.secondBtn.isEnabled = false
    }, completion: nil)

    goaltype = "Engagement"

    UserGoal()

}

@IBAction func thirdBtnAction(_ sender: Any) {
    let bounds3 = self.thirdBtn.bounds
    UIView.animate(withDuration: 1.0, delay: 0.0, usingSpringWithDamping: 0.2, initialSpringVelocity: 10, options: [], animations: {
        self.thirdBtn.bounds = CGRect(x: bounds3.origin.x - 20, y: bounds3.origin.y, width: bounds3.size.width + 20, height: bounds3.size.height)
        self.thirdBtn.isEnabled = false
    }, completion: nil)


    goaltype = "Storytelling"
    UserGoal()

}

第二个视图表格视图单元格有一个小动画。

编辑1:当我尝试添加isEnabled = true时,该按钮是可点击的。但是,由于动画,它会在每次点击时不断扩展。见图:

Expanded pic

如何使按钮可点击?

1 个答案:

答案 0 :(得分:1)

您为所有按钮设置了isEnabled = false。返回第一个视图时启用它

self.firstBtn.isEnabled = true
self.secondBtn.isEnabled = true
self.thirdBtn.isEnabled = true

仅在动画时禁用按钮,在完成块中启用它

UIView.animate(withDuration: 1.0, delay: 0.0, usingSpringWithDamping: 0.2, initialSpringVelocity: 10, options: [], animations: {
            self.thirdBtn.bounds = CGRect(x: bounds3.origin.x - 20, y: bounds3.origin.y, width: bounds3.size.width + 20, height: bounds3.size.height)
            self.thirdBtn.isEnabled = false
        }) { (_ isCompleted) in
            self.thirdBtn.isEnabled = true
        }

同样适用于firstBtn& secondBtn动画