UIButton自定义按钮不会在选择时更改字体颜色

Posted

技术标签:

【中文标题】UIButton自定义按钮不会在选择时更改字体颜色【英文标题】:UIButton custom button wont change font colour on select 【发布时间】:2012-09-21 20:47:38 【问题描述】:

我正在使用此代码创建 UIButton,但是当按下按钮时,字体不会改变颜色。

_gameSlider = [UIButton buttonWithType:UIButtonTypeCustom];
    [_gameSlider setBackgroundImage:[[UIImage imageNamed:@"sliderBackgroundSticker"] resizableImageWithCapInsets:UIEdgeInsetsMake(22, 16, 22, 16)] forState:UIControlStateNormal];
    _gameSlider.frame = CGRectMake(0, 0, self.view.frame.size.width - 20, 70);
    newCnt = self.view.center;
    newCnt.y = newCnt.y + 120;
    _gameSlider.center = newCnt;
    [_gameSlider setTitle:@"PLAY" forState:UIControlStateNormal];
    [_gameSlider.titleLabel setFont:[UIFont fontWithName:@"Chalkduster" size:22]];
    [_gameSlider setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];
    [_gameSlider setTitleColor:[UIColor yellowColor] forState:UIControlStateSelected | UIControlStateHighlighted];
    [_gameSlider addTarget:self action:@selector(playButtonPressed) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:_gameSlider];

【问题讨论】:

【参考方案1】:

将你想要的背景颜色放在 forState:Highlighted 下。

当它被按下时它不在UIControlStateNormal 它是UIControlStateHighlighted

【讨论】:

那甚至无法编译。当它在 UIControlStateSelected 中被按下时肯定会?! 否,其控制状态在按下时突出显示,未选中。你知道我的意思,如果它突出显示,添加代码,这将解决你的问题。 也许我不清楚。我只希望它在被按下时改变。背景改变了,但标题没有改变。 然后你把它放在forState:Highlighted下,高亮就是按下时的样子。

以上是关于UIButton自定义按钮不会在选择时更改字体颜色的主要内容,如果未能解决你的问题,请参考以下文章

目标 - 突出显示/选择C按钮时,突出显示/选择背景颜色和字体颜色

在uitableview中选择时如何更改自定义单元格图像和标签字体颜色?

使用 UIButton 自定义 UITableViewCell:无法更改 UIImage

自定义 UIButton 不会更改其图像

滚动时更改 UIButton 色调颜色

iOS:自定义按钮(UIButton 的子类) - 无法更改边框属性