点击IOS后按钮标签颜色变化

Posted

技术标签:

【中文标题】点击IOS后按钮标签颜色变化【英文标题】:button label colour change after click IOS 【发布时间】:2014-07-10 17:33:05 【问题描述】:

我有一段代码可以创建一个按钮,以正确的空间大小颜色等:

UIButton *learnmorebutton = [UIButton buttonWithType:UIButtonTypeCustom];
[self.view addSubview:learnmorebutton];
learnmorebutton.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.3];
learnmorebutton.frame = CGRectMake(0.0, 518.0, 159.0, 50.0);
[learnmorebutton setTitle:@"learn more" forState:UIControlStateNormal];
[learnmorebutton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
learnmorebutton.titleLabel.font = [UIFont fontWithName:@"Helvetica Light" size:17.0];

然后我有一个按下按钮时的触发器:

[learnmorebutton addTarget:self action:@selector(learnMoreClickEvent:) forControlEvents:UIControlEventTouchUpInside];

然后我想改变按钮背景和文字颜色,所以:

sender.titleLabel.textColor = [UIColor redColor];
sender.backgroundColor = [UIColor whiteColor];

背景改变颜色,但文字消失。就像它也变白了一样。

【问题讨论】:

您在learnMoreClickEvent 中更改颜色的方式与您在设置中使用的不同。改用[sender setTitleColor:[UIColor redColor] forState:UIControlStateNormal]; 【参考方案1】:

你需要通过

设置标签的颜色
[sender setTitleColor:[UIColor redColor] forState:UIControlStateNormal];

按钮不接受标签上的颜色变化,直接导致其外观随其状态而变化。这就是为什么您需要为此使用特定的UIButton API。

【讨论】:

【参考方案2】:

如果您问“如何在按下按钮时更改颜色”,您可以像这样轻松更改:

self.titleLabel.textColor = [UIColor redColor];
self.*yourlabel*.textColor = [UIColor *desiredColor*];

【讨论】:

【参考方案3】:
[learnmorebutton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];

改成

[learnmorebutton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

当您单击 uibutton 时,会使用白色突出显示为什么您的文本看起来像文本消失。

【讨论】:

以上是关于点击IOS后按钮标签颜色变化的主要内容,如果未能解决你的问题,请参考以下文章

IOS修改Navigation Bar上的返回按钮文本颜色,箭头颜色以及导航栏按钮的颜色

input标签设置背景颜色

android imageButton 点击按钮前中后,按钮颜色的变化

ps怎么把一种颜色变成另一种颜色?

elementui中el-button点击后不失去焦点(按钮颜色不变)的解决

取消a标签在移动端点击时的背景颜色