按下时更改按钮标题的想法是什么?

时间:2015-05-01 13:51:07

标签: xcode swift button title

使用Swift,我想在点击时更改按钮的标题,例如从“开始”到“停止”,反之亦然。这就是我所做的:

var runningcode = false

@IBAction func BUTTON(sender: UIButton) {
    if runningcode {
        runningcode = false
        sender.setTitle("Start", forState: UIControlState.Normal)
    } else {
        runningcode = true
        sender.setTitle("Stop", forState: UIControlState.Normal)
    }
}

这很有用。但我不明白为什么在.setTitle而不是“BUTTON”之前插入“sender”?插入我的按钮名称以表示我想要更改该特定按钮的标题似乎更合乎逻辑..我只是2周+编程所以我希望你们能用最基本的可理解的术语解释你。或者,如果有人可以指导我进行基础学习的书籍/网站/作者,我将非常感激。

我的问题是关于sender.setTitle(“Button Title”,forState:UIControlState.Normal)行:

1)什么是“发件人”?这是什么意思?为什么使用它代替我的按钮名称?

2)什么是forState? / UIControlState?为什么正常?这是什么意思?

2 个答案:

答案 0 :(得分:2)

使用按钮状态,并为正常状态和突出显示状态设置不同的标题:

sender.setTitle("Unpressed", forState: UIControlState.Normal)
sender.setTitle("Pressed", forState: UIControlState.Highlighted)

如果您希望标题更改保持不变,请使用按钮的选定状态而不是突出显示。

sender.setTitle("Selected", forState: UIControlState.Selected)

//Inside your button callback
sender.selected = !sender.selected

当手指在按钮上方时,它处于突出显示状态。您需要在创建按钮时进行设置。无需将此代码添加到按下的回调按钮。

答案 1 :(得分:2)

据我所知,sender只是调用动作的任何内容,在这种情况下,程序中的按钮链接到IBAction BUTTON

可以找到有关UIControlState的更多信息here