在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”行上设置一个断点,它就会发生。但按钮的背景颜色不会变为绿色。
答案 0 :(得分:0)
您是否在按钮的UIControlEventTouchUpInside操作中设置了selected
属性?如果是这样,我们会在setHighlighted:
之后再次调用您的setSelected:
方法,因此backgroundColor
将重新设置为蓝色。