如何更改 UIButton 的 LabelText 颜色?

3

您好,我正在编写一个程序创建UIButton,尝试将按钮的textLabel文本颜色更改为橙色。我尝试了下面两行代码,但它们都不起作用。请问有人能告诉我如何正确地实现吗?

[myButton.titleLabel setTextColor:[UIColor orangeColor]];

而且,

myButton.titleLabel.textColor = [UIColor orangeColor];

这两个代码片段都是正确的,应该可以工作。尝试在调试器中在此代码行上设置断点,并检查myButton是否是您期望的按钮(而不是nil)。 - puzzle
1
问题在于UIButton的titleLabel是只读的,尽管它的属性不是。这就是为什么这段代码不起作用的原因。 - PengOne
为什么这会导致代码无法工作?我刚测试了一下,在模拟器和设备上都可以正常运行(iOS 4.3.3 / Xcode 4.0.2)。 - puzzle
话虽如此,你的答案当然是正确的——一旦状态改变,标签的更改就会消失(如果按钮还没有显示在屏幕上,它们可能根本看不到)。但是,使用这些方法可以改变按钮标签在其当前状态下的颜色。 - puzzle
1个回答

13

尝试使用- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state代替:

[myButton setTitleColor:[UIColor orangeColor] forState:UIControlStateNormal];
这里的问题是,UIButton的titleLabel只读,尽管它的属性不是。这就是为什么你看起来正确的代码不起作用的原因。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接