UIButton按不适用于IF语句

时间:2018-06-21 12:04:55

标签: ios swift uibutton uipickerview

我目前正试图使if语句仅在用户按下UIButton时起作用,然后该UIButton将运行self.eslTopics.isHidden = false以显示我的UIPickerView。编写if语句的正确语法是什么?我目前有一个名为“ showwheel”的按钮,用于将pickerview UI从hidden = true更改为false。

if showWheel{
    self.eslTopics.isHidden = false
}

Xcode尝试引发错误:

  

可选类型“ UIButton!”不能用作布尔值;测试'!= nil'代替,将'showWheel'替换为'(showWheel!= nil)'

这也没有意义或行不通。

4 个答案:

答案 0 :(得分:2)

您可以创建IBAction方法并连接到TouchDown的{​​{1}}事件。

UIButton

注意:如果实现按钮的默认内部touchup事件,则从按钮取消触摸时将调用该事件。

供参考...

enter image description here

答案 1 :(得分:1)

您必须将IBAction与按钮按下关联,然后在该方法中添加代码。

@IBAction func toggleVisibility(_ sender: UIButton) {
    self.eslTopics.isHidden = false
}

答案 2 :(得分:1)

如果变量showWheel是类型UIButton!的实例变量(隐式展开的可选UIButton),则您的代码不合法​​。

在C / C ++ / Objective-C中,说

是合法的
if showWheel

编译器将其表示为“如果showWheel为true”,则true等效于!0 / !nil

在Swift中这是不合法的。在Swift中,您必须明确检查nil是否为可选内容,因此您的代码将需要读取

if showWheel != nil

请注意,您应该将条件放在括号中的Swift中。不要像在C / C ++ / Objective-C / Java中那样使用if (showWheel != nil)

答案 3 :(得分:-1)

错误提到:

  

可选类型“ UIButton!”不能用作布尔值;测试'!=   nil”代替,将'showWheel'替换为'(showWheel!= nil)'

showWheel是UIButton的类型,表示如果您输入:

if showWheel { }

这意味着它检查showWheel是否为 nil ,它与以下内容相同:

if showWheel != nil { }

似乎与您要的内容无关,我们已经假设showWheel不为零。

IBAction的{​​{1}}中,您应该做的是直接调用showWheel,而无需任何if语句。

如果您不熟悉向UIButton添加操作,则可以检查