更改具有多个标签的自定义UIButton的标签颜色

时间:2011-02-04 05:53:09

标签: objective-c uibutton uilabel subclass

我正在创建一个包含多个标签的自定义按钮。我希望能够在高亮/普通UIControlStates上更改标签的文本颜色。我知道可以根据控件状态更改标题文本颜色,但我似乎无法弄清楚按钮中的自定义标签。有什么想法吗?

3 个答案:

答案 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下的表格视图中变白