Button.titleLabel setTextColor:无效

时间:2015-08-06 02:07:55

标签: ios objective-c

我写了一个按钮,当我触摸它时我想改变按钮的文字颜色。代码如下:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
[super touchesBegan:touches withEvent:event];
[self.titleLabel setTextColor:[UIColor blackColor]];   
}

但它没有用。相反,我写了

[self setTitleColor:[UIColor greenColor]       forState:UIControlStateNormal];

它有效。 但我不知道其中的区别。有谁知道,谢谢。

1 个答案:

答案 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。