所以我有一个调用 API 方法的类,一旦请求完成,它会在我的 Controller View 上调用一个委托(delegate)方法,我在其中执行以下操作:
[self.myButton setEnabled:NO];
self.myButton.titleLabel.textColor = [UIColor grayColor];
NSLog(@"%@", self.myButton.titleLabel.textColor);
将文本颜色从蓝色更改为灰色,让用户知道他/她不能第二次单击该按钮。
但是,颜色没有变化。这是调试日志中的内容:
UIDeviceWhiteColorSpace 0.5 1
为什么?当我在以下情况下做同样的事情时:
- (void)viewWillAppear:(BOOL)animated
它起作用并将按钮上的文本颜色更改为灰色。
最佳答案
您可以在 viewDidLoad 中执行此操作
[self.myButton setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
[self.myButton setTitleColor:[UIColor grayColor] forState:UIControlStateDisabled];
当您执行 setEnabled:NO 时,它将自动切换到禁用状态,因此文本颜色将设置为灰色。
关于iphone - 无法在委托(delegate)方法中更改 UIButton 文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10054699/