我试图在点击它时更改UIButton的文本。我尝试过以下的事情,但都失败了:
首先,我尝试在故事板上插入一个按钮并将其链接到视图控制器,按钮的代码如下所示:
@IBAction func button(sender: AnyObject) {}.
在按钮的括号内,我随后使用了
button.setTitle ("something" , for State: .Selected)
但是,当我在模拟器中运行此代码时,它似乎根本不起作用。
我还尝试按照Apple参考手册,在单击所述按钮后在侧边菜单中为不同状态设置不同的标签,但这仍然无效。任何人都可以准确地告诉我(即要写什么代码以及它究竟在哪里)如何实现这一目标?
创建IBAction函数时,发件人的类型应为UIButton。发件人是你的按钮。点击按钮时会调用该功能。您必须在发件人(您的按钮)上使用函数setTitle。
@IBAction func buttonTouchedUpInside(sender: UIButton) {
sender.setTitle("buttonName", forState: .normal)
}
为你的按钮创建一个IBOutlet,然后这个代码应该工作(假设你命名你的IBOutlet button
):
button.setTitle("title", forState: .Normal)
button.setTitle("title 1", forState: .Application)
button.setTitle("title 2", forState: .Highlighted)
button.setTitle("title 3", forState: .Reserved)
button.setTitle("title 4", forState: .Selected)
button.setTitle("title 5", forState: .Disabled)
把它放在你的viewDidLoad()
方法中。
setTitle()
方法适用于按钮的属性检查器中定义的“普通”标题。
@IBAction func button(sender: UIButton) {
sender.setTitle("buttonName", for: .normal)
}
如果在属性检查器中将按钮的属性配置为“属性”,则setTitle()
方法对按钮的标题没有影响。要管理这种情况,首先从按钮获取属性标题,然后设置值。
@IBAction func button(sender: UIButton) {
let attributedTitle = sender.attributedTitle(for: .normal)
attributedTitle?.setValue("buttonName", forKey: "string")
sender.setAttributedTitle(attributedTitle, for: .normal)
}
实际上,如果您使用Storyboard或Xib文件中的按钮,并且(Storyboard,Xib)中没有清除按钮值,则setTitle方法不起作用。如果清除了按钮值,则setTitle方法正常工作。
这对我有用。
dispatch_async(dispatch_get_main_queue(), ^{
[self.btnAssment setTitle:@"ASSDate" forState:UIControlStateNormal];
});