我写了一个按钮,我想在触摸按钮时更改其文本颜色。代码如下:

-(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/

10-10 20:46