我正在尝试获取按钮的文本,以便在点按时将字体颜色更改为红色。我查看了几个月前的类似帖子,使用该代码会导致Xcode 6.1.1中出现构建错误。这是我正在尝试的代码:
class ViewController: UIViewController {
@IBAction func firstButton(sender: UIButton) {
firstButton.titleLabel.textColor = UIColor.redColor()
}
}
我得到的错误代码是:
'(UIButton) - > ()'没有名为'titleLabel'的成员
任何帮助都会非常感激,因为我在试图学习Objective C后失去耐心,因此我认为Swift是我的拯救恩典。
答案 0 :(得分:14)
对于任何对使我的工作问题所必需的确切快速代码感兴趣的人来说,这是:
class ViewController: UIViewController {
@IBAction func firstButton(sender: UIButton) {
sender.setTitleColor(UIColor.redColor(), forState: UIControlState.Normal)
}
答案 1 :(得分:8)
您正在尝试更改函数titleLabel
的文本颜色,这没有意义。如果您尝试获取按钮的引用以获取其sender
,则应该访问titleLabel
参数。另外,正如rakeshbs指出的那样,titleLabel
是UIButton的可选属性。
class ViewController: UIViewController {
@IBAction func firstButton(sender: UIButton) {
sender.titleLabel?.textColor = UIColor.redColor()
}
}
如果您分解了错误消息,您会发现这显然是个问题。
'(UIButton) - > ()'没有名为'titleLabel'的成员
其中表示您正在尝试访问类型为titleLabel
的对象上名为(UIButton) -> ()
的成员(或属性),这意味着一个函数将按钮作为输入并且不返回任何内容。
答案 2 :(得分:5)
这适用于 Swift 3:
yourButton.setTitleColor(UIColor.blue,for:。normal)
答案 3 :(得分:2)
UIButton.titlelabel
是一个可选属性。您必须使用可选链接来更改其属性。
firstButton.titleLabel?.backgroundColor = UIColor.redColor()
请阅读有关swift选项的详细信息。 http://www.appcoda.com/beginners-guide-optionals-swift/