我有一个UIButton子类,它不使用UIImage背景,只使用背景颜色。我注意到的一件事是,当您设置按钮的背景图像时,会出现一个默认的突出显示状态,按下按钮时会变得稍暗。
这是我目前的代码。
- (void)awakeFromNib
{
[super awakeFromNib];
self.backgroundColor = [UIColor whiteColor];
self.layer.cornerRadius = 4;
[self.titleLabel setFont:[UIFont systemFontOfSize:15]];
[self setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
}
使用此代码,如果我只设置背景颜色,则不会给出默认选择状态。我已尝试用- (void)setHighlighted:(BOOL)highlighted
覆盖它并设置按钮的颜色较深,但要么我没有正确的颜色,要么只是设置颜色。
我不确定我如何模仿选择状态。任何帮助将不胜感激!
答案 0 :(得分:0)
[self setTitleColor:[UIColor whiteColor] UIControlStateHighlighted]; // To set title label color for highlighted state.
答案 1 :(得分:0)
您可以通过向按钮注册事件来完成此操作。
[button addTarget:self action:@selector(buttonTouchDown:) forControlEvents:UIControlEventTouchDown | UIControlEventTouchDragInside];
[button addTarget:self action:@selector(buttonTouchUp:) forControlEvents:UIControlEventTouchUpInside|UIControlEventTouchCancel | UIControlEventTouchDragExit];
执行此操作后,您需要同时实现buttonTouchDown:和buttonTouchUp:。
- (void) buttonTouchDown:(UIButton *)sender {
// button color when it's highlighted
sender.backgroundColor = [UIColor red];
}