我知道这个问题必须先回答,但我仍然想知道为什么第一行代码无法改变UIButton
的标题,而第二行则无法改变。除了第一行是从BigNerdRanch的Objective-C书中复制的......我将其作为可行的样本。
self.assetTypeButton.titleLabel.text=@"foo"; //doesn't work
[self.assetTypeButton setTitle:@"foo" forState:UIControlStateNormal]; //this works and button title is changed.
答案 0 :(得分:0)
来自Apple TitleLabel and setTitle
的更好解释<强> titleLabel 强>
UIButton *button = [UIButton buttonWithType: UIButtonTypeSystem];
button.titleLabel.font = [UIFont systemFontOfSize: 12];
button.titleLabel.lineBreakMode = NSLineBreakByTruncatingTail;
请勿使用标签对象设置文本颜色或阴影颜色。 相反,使用setTitleColor:forState:和 setTitleShadowColor:forState:这个类的方法来制作它们 变化。
即使按钮没有,titleLabel属性也会返回一个值 已显示。系统的属性值为nil 的按钮。强>
<强>的setTitle 强>
使用此方法设置按钮的标题。标题你 指定从按钮的关联标签中派生其格式 宾语。如果您为该标题设置了标题和属性标题 按钮,该按钮更喜欢使用属性标题 之一。
至少应设置正常状态的值。如果一个 title没有为某个州指定,默认行为是使用 与UIControlStateNormal状态关联的标题。如果值为 未设置UIControlStateNormal,则属性默认为a 系统价值。