点击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上的返回按钮文本颜色,箭头颜色以及导航栏按钮的颜色
android imageButton 点击按钮前中后,按钮颜色的变化