Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在子类中获取UIButton的默认高亮显示颜色/状态?_Ios_Objective C_Uibutton - Fatal编程技术网

Ios 如何在子类中获取UIButton的默认高亮显示颜色/状态?

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

我有一个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
覆盖此选项,并设置按钮的较暗颜色,但要么我没有正确设置颜色,要么只是设置颜色


我不确定如何模仿这种选择状态。任何帮助都将不胜感激

您可以通过向按钮注册事件来完成此操作

[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分享的链接,我想它回答了你的问题。