UIButton与背景图像:标题文本随机出现

时间:2013-04-10 21:11:48

标签: uibutton uikit

我在具有标题文本的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];
}

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

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

_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"),但这不会引起任何可见的放置。

0 个答案:

没有答案