我创建了一个UIButton并使用titleLable.text
来设置文本,但是按钮中没有显示文本,因此我将其替换为setText
方法,并显示文本,我只是想知道titleLable.text
无效的原因
UIButton *button=[UIButton buttonWithType:UIButtonTypeCustom];
button.titleLabel.text=@"text";
然后使用如下
[button setTitle:@"text" forState:UIControlStateNormal];
答案 0 :(得分:4)
因为titleLabel
是readonly
属性。
<强> titleLabel 强>
显示a的
currentTitle
属性值的视图 按钮。 (只读)
@property(nonatomic, readonly, retain) UILabel *titleLabel
&gt;<强>讨论强>
虽然此属性是只读的,但它自己的属性是 读/写。主要使用这些属性来配置文本 按钮。例如:
UIButton *button = [UIButton buttonWithType: UIButtonTypeRoundedRect];
button.titleLabel.font = [UIFont systemFontOfSize: 12];
button.titleLabel.lineBreakMode = UILineBreakModeTailTruncation;
请勿使用标签对象设置文本颜色或阴影颜色。 相反,使用setTitleColor:forState:和 setTitleShadowColor:forState:这个类的方法来制作它们 变化。强>
即使按钮没有,titleLabel属性也会返回一个值 已经显示了。系统的属性值为nil 的按钮。强>
<强>状况强>
Available in iOS 3.0 and later.
在UIButton.h中声明
请参阅UIButton Class了解详情。
答案 1 :(得分:1)
设置文本不起作用的原因是按钮本身将在内部设置文本,具体取决于控件状态。这将覆盖您设置为文本的任何内容。
这就是您使用setTitle:forControlState:
的原因。该按钮将使用所有其他状态的正常状态值,除非您另有说明,但如果您从未为任何控件状态设置标题,则不会显示标签。