所以我有一个调用API方法的类,一旦请求完成,它就会在我的控制器视图上调用一个委托方法,我这样做:
[self.myButton setEnabled:NO];
self.myButton.titleLabel.textColor = [UIColor grayColor];
NSLog(@"%@", self.myButton.titleLabel.textColor);
要将文字颜色从蓝色更改为灰色,让用户知道他/她不能再次点击该按钮。
但是,颜色不会改变。这是调试日志中的内容:
UIDeviceWhiteColorSpace 0.5 1
为什么呢?当我在:
中做同样的事情时- (void)viewWillAppear:(BOOL)animated
它可以工作,并将按钮上文字的颜色更改为灰色。
答案 0 :(得分:4)
您可以在viewDidLoad
中执行此操作[self.myButton setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
[self.myButton setTitleColor:[UIColor grayColor] forState:UIControlStateDisabled];
当您执行setEnabled:NO时,它将自动切换到禁用状态,因此文本颜色将设置为灰色。
答案 1 :(得分:1)
您应该在主线程上执行所有UI更新。这可能就是问题所在。