我写了一个按钮,我想在触摸按钮时更改其文本颜色。代码如下:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
[super touchesBegan:touches withEvent:event];
[self.titleLabel setTextColor:[UIColor blackColor]];
}
但是它没有用。相反,我写
[self setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];
而且有效。
但是我不知道区别。有人知道吗,谢谢。
最佳答案
苹果UIButton Class Documentation中对此进行了详细讨论
尽管此属性是只读的,但它自己的属性是
读/写。主要使用这些属性来配置
按钮。例如:
UIButton *button = [UIButton buttonWithType: UIButtonTypeSystem];
button.titleLabel.font = [UIFont systemFontOfSize: 12];
button.titleLabel.lineBreakMode = NSLineBreakByTruncatingTail;
不要使用标签对象设置文本颜色或阴影颜色。
相反,请使用
setTitleColor:forState:
和此类的
setTitleShadowColor:forState:
方法使这些变化。
即使尚未显示按钮,titleLabel属性也会返回一个值。对于系统按钮,该属性的值为nil。
关于ios - Button.titleLabel setTextColor:不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31845687/