Ios 如何在子类中获取UIButton的默认高亮显示颜色/状态?
我有一个UIButton子类,它不使用UIImage背景,只使用背景色。我注意到的一件事是,当你设置一个按钮的背景图像时,有一个默认的高亮显示状态,当按下按钮时,按钮会稍微变暗 这是我目前的代码Ios 如何在子类中获取UIButton的默认高亮显示颜色/状态?,ios,objective-c,uibutton,Ios,Objective C,Uibutton,我有一个UIButton子类,它不使用UIImage背景,只使用背景色。我注意到的一件事是,当你设置一个按钮的背景图像时,有一个默认的高亮显示状态,当按下按钮时,按钮会稍微变暗 这是我目前的代码 - (void)awakeFromNib { [super awakeFromNib]; self.backgroundColor = [UIColor whiteColor]; self.layer.cornerRadius = 4; [self.titleLabel
- (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
覆盖此选项,并设置按钮的较暗颜色,但要么我没有正确设置颜色,要么只是设置颜色
我不确定如何模仿这种选择状态。任何帮助都将不胜感激 您可以通过向按钮注册事件来完成此操作
[self setTitleColor:[UIColor whiteColor] UIControlStateHighlighted]; // To set title label color for highlighted state.
[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];
}
试试看:我说的是UIButton的整个颜色,而不仅仅是标题的颜色。我没有看到Yameo分享的链接,我想它回答了你的问题。