带背景图像的UIButton:标题文本随机不会出现

我在具有标题文本的UIButton上设置背景图像。 这工作正常,除了约5%的时间,很少和非确定性,相同的代码,文本不会出现。

在我的UIButton子类中:

[self setBackgroundImage:normalImage forState:UIControlStateNormal];
// Also set a background image for all other states.

在UIButton类中,我有这个方便的方法来设置标题:

- (void)setNormalTitle:(NSString *)title {
    [self setTitle:title forState:UIControlStateNormal];
    [self setTitle:title forState:UIControlStateSelected];
    [self setTitle:title forState:UIControlStateHighlighted];
    [self setTitle:title forState:UIControlStateSelected | UIControlStateHighlighted];
}

我没有发现任何人遇到过这个问题。 有任何想法吗? 我总是可以创建一个包含按钮并使用UILabel在顶部绘制文本的自定义UIView,但是我想知道是否有我遇到的已知问题。

更新 :我似乎通过异步设置标题解决了问题:

_tabCell = loadTopNibObject(@"MYTabSmall3HeaderCell");
dispatch_async(dispatch_get_main_queue(), ^{
    _tabCell.tab0Button.normalTitle = @"Option 1";
    _tabCell.tab1Button.normalTitle = @"Option 2";
    _tabCell.tab2Button.normalTitle = @"Option 3";
});

更新2 :不,以上不起作用。 我突出显示并打印出空白按钮的文本,即使该按钮显示为空白,该文本也会报告正确的字符串。 我也尝试过运行setNeedsDisplay:当按钮被触摸时,无济于事。 也尝试重新设置按钮文本到一些特定的字符串(例如@"test" ),但这不会踢任何可见的让步。

链接地址: http://www.djcxy.com/p/28217.html

上一篇: UIButton with background image: title text randomly does not appear

下一篇: Changing UIButton text