我在具有标题文本的 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"
),但这不会引起任何可见的让步。