我写了一个按钮,当我触摸它时我想改变按钮的文字颜色。代码如下:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
[super touchesBegan:touches withEvent:event];
[self.titleLabel setTextColor:[UIColor blackColor]];
}
但它没有用。相反,我写了
[self setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];
它有效。 但我不知道其中的区别。有谁知道,谢谢。
答案 0 :(得分:5)
苹果UIButton Class Documentation
中对此进行了详细讨论虽然此属性是只读的,但它自己的属性是 读/写。主要使用这些属性来配置文本 按钮。例如:
UIButton *button = [UIButton buttonWithType: UIButtonTypeSystem];
button.titleLabel.font = [UIFont systemFontOfSize: 12];
button.titleLabel.lineBreakMode = NSLineBreakByTruncatingTail;
请勿使用标签对象设置文本颜色或阴影颜色。 相反,请使用
setTitleColor:forState:
和 这个类的setTitleShadowColor:forState:
方法来制作它们 变化。
即使尚未显示按钮,titleLabel属性也会返回一个值。系统按钮的属性值为nil。