ios - 如何设置子类 UIButton 的突出显示标题颜色?

标签 ios uibutton

我已将 UIButton 子类化,并尝试在突出显示按钮时设置标题颜色。自定义按钮也在 nib 文件中。

我有代码:

- (void)layoutSubviews 
{
    [super layoutSubviews];

    self.titleLabel.textColor = [UIColor blueColor];
    [self setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted]; // Offending line

}

但是,当我有 setTitleColor:forState: 行时, View 不会加载(似乎进入无限循环并且不显示)。是否应该在其他地方声明?您还如何设置自定义 UIButton 的突出显示标题颜色?

最佳答案

如果你想在 layoutSubviews 中这样做,这将避免你当前正在创建的无限循环:

- (void)layoutSubviews
{
    [super layoutSubviews];

    if (self.state == UIControlStateHighlighted) {
        self.titleLabel.textColor = [UIColor redColor];
    } else {
        self.titleLabel.textColor = [UIColor blueColor];
    }
}

关于ios - 如何设置子类 UIButton 的突出显示标题颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11821636/

相关文章:

ios - Storyboard中带有自定义字体的属性字符串无法正确加载

ios - 如果有多个电话号码与 ios8 显示联系人属性

ios - Swift - 创建一个没有导航 Controller 的后退按钮

ios - iOS 应用程序中的角标(Badge)按钮

ios - 以编程方式添加的按钮在 ios 中不显示触摸感

objective-c - 向iPhone App iphone sdk添加收藏夹功能

iphone - textFieldDidEndEditing 替代方案

ios - 当前模型关闭时间时快速传递数组值

ios - 网站加载时显示事件指示器

ios - 如果是 iOS 8,则为 UIAlertController,否则为 UIAlertView