我正在创建一个包含多个标签的自定义按钮。我希望能够在高亮/普通UIControlStates上更改标签的文本颜色。我知道可以根据控件状态更改标题文本颜色,但我似乎无法弄清楚按钮中的自定义标签。有什么想法吗?
答案 0 :(得分:2)
感谢@Rich的想法。 IN子类UIButton并将此代码放在新类中。
这是我使用的代码:
- (void)setHighlighted:(BOOL)bHighlighted
{
[super setHighlighted:bHighlighted];
if (bHighlighted) {
[label1 setTextColor:[UIColor whiteColor]];
[label2 setTextColor:[UIColor whiteColor]];
}else {
[label1 setTextColor:[UIColor blackColor]];
[label2 setTextColor:[UIColor blackColor]];
}
}
答案 1 :(得分:1)
听起来你想使用一些继承的UIControl方法(例如sendAction:to:forEvent :)这提供了比使用UIButton更精细的控制。
答案 2 :(得分:0)
这有点复杂,但我有一本关于此的书,它被称为高级iOS 4开发。基本上你必须使用运行时来换掉setHighlighted方法。
编辑:它在技术上适用于tableviewcells,但它在this下的表格视图中变白