UIButton setTitle不起作用

Jus*_*ner 6 uibutton swift xcode6

我试图在点击它时更改UIButton的文本.我尝试过以下的事情,但都失败了:

首先,我尝试在故事板上插入一个按钮并将其链接到视图控制器,按钮的代码如下所示:

@IBAction func button(sender: AnyObject) {}. 
Run Code Online (Sandbox Code Playgroud)

在按钮的括号内,我随后使用了

button.setTitle ("something" , for State: .Selected)
Run Code Online (Sandbox Code Playgroud)

但是,当我在模拟器中运行此代码时,它似乎根本不起作用.

我还尝试按照Apple参考手册,在单击所述按钮后在侧边菜单中为不同状态设置不同的标签,但这仍然无效.任何人都可以准确地告诉我(即要编写什么代码以及它究竟在哪里)如何实现这一目标?

Dal*_*ale 12

斯威夫特 4:

普通标题

setTitle()方法适用于按钮的属性检查器中定义的“Plain”标题。

@IBAction func button(sender: UIButton) { 
     sender.setTitle("buttonName", for: .normal)
}
Run Code Online (Sandbox Code Playgroud)

归属标题

setTitle()如果在属性检查器中将按钮配置为“属性”,则该方法对按钮的标题没有影响。要管理这种情况,首先从按钮获取属性标题,然后设置值。

@IBAction func button(sender: UIButton) { 
     let attributedTitle = sender.attributedTitle(for: .normal)
     attributedTitle?.setValue("buttonName", forKey: "string")
     sender.setAttributedTitle(attributedTitle, for: .normal)
}
Run Code Online (Sandbox Code Playgroud)


gas*_*sho 10

创建IBAction函数时,发件人的类型应为UIButton."发件人"是您的按钮.单击按钮时会调用该函数.您必须在发件人(您的按钮)上使用"setTitle"功能.

@IBAction func buttonTouchedUpInside(sender: UIButton) { 
    sender.setTitle("buttonName", forState: .normal)
}
Run Code Online (Sandbox Code Playgroud)