提问人:tesla 提问时间:4/21/2022 更新时间:4/22/2022 访问量:977
UIButton 标题文本颜色更改
UIButton title text color change
问:
我在自定义 UIView 中有一个 UIButon。在视图中,我有一个函数,当我想更改 UIView 的外观时会调用该函数。setDisabled:(BOOL)disabled
\\ Method 1
- (void) setDisabled:(BOOL)disabled
{
myUIButton.titleLabel.textColor = disabled ? [UIColor systemGrayColor] : [UIColor systemBlueColor];
}
\\ Method 2
- (void) setDisabled:(BOOL)disabled
{
[myUIButton setTitleColor: disabled ? [UIColor systemGrayColor] : [UIColor systemBlueColor] forState: UIControlStateNormal];
}
我已将此 UIView 用于 UITable 视图中的单元格。使用方法 1 时,更改不会立即反映出来(当我滚动浏览 UITableView 时会反映出来),而使用方法 2 时,颜色变化会立即反映出来。在此 apple 文档中,提到不使用方法 1。但是,我找不到原因。任何线索都会有所帮助。
答:
0赞
DonMag
4/22/2022
#1
不要使用“方法 1”......
UIKit 控件(例如)有很多代码可以在“幕后”工作。UIButton
例如,如果按钮的正常颜色为“红色”,突出显示的颜色为“浅灰色”,然后执行:
myUIButton.titleLabel.textColor = [UIColor systemBlueColor];
按钮本身并不知道您这样做了。它仍然将红色作为其正常颜色属性。
一旦 UIKit 更新该按钮(点击或布局更改等),文本颜色将设置回正常颜色属性。
评论
myUIButton.titleLabel
myUIButton setTitleColor