选中后无法设置UIButton的背景颜色?

时间:2014-09-19 04:04:44

标签: ios uiview uibutton uikit

在UIButton子类中:

- (void) setHighlighted:(BOOL)highlighted {
    [super setHighlighted:highlighted];

    if (highlighted) {
        self.backgroundColor = [UIColor redColor];
    }
    else {
        self.backgroundColor = [UIColor blueColor];
    }
}

- (void)setSelected:(BOOL)selected {
    [super setSelected:selected];
    if (selected) {
        self.backgroundColor = [UIColor greenColor]; //this happens
    }
    else {
        self.backgroundColor = [UIColor blueColor];
    }
}

突出显示按钮时,我看到红色。但是当我设置button.selected = YES时,我从未看到绿色。为什么setHighlighted工作但setSelected不工作?

我可以在“this happen”行上设置一个断点,它就会发生。但按钮的背景颜色不会变为绿色。

1 个答案:

答案 0 :(得分:0)

您是否在按钮的UIControlEventTouchUpInside操作中设置了selected属性?如果是这样,我们会在setHighlighted:之后再次调用您的setSelected:方法,因此backgroundColor将重新设置为蓝色。