我已经进行了子类化,UIButton并且在按钮突出显示时尝试设置标题颜色.自定义按钮也位于nib文件上.
我有代码:
- (void)layoutSubviews
{
[super layoutSubviews];
self.titleLabel.textColor = [UIColor blueColor];
[self setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted]; // Offending line
}
Run Code Online (Sandbox Code Playgroud)
但是,当我有线时,视图不会加载(看似进入无限循环并且不显示)setTitleColor:forState:.它应该在其他地方宣布吗?你怎么设置自定义的突出显示标题颜色UIButton?
如果你想在layoutSubviews中这样做,这将避免你当前正在创建的无限循环:
- (void)layoutSubviews
{
[super layoutSubviews];
if (self.state == UIControlStateHighlighted) {
self.titleLabel.textColor = [UIColor redColor];
} else {
self.titleLabel.textColor = [UIColor blueColor];
}
}
Run Code Online (Sandbox Code Playgroud)