我在具有 Headers 文本的UIButton上设置背景图像 . 这种方法很好,除了大约5%的时间,很少和非确定性地使用相同的代码,文本不会出现 .
在我的UIButton子类中:
[self setBackgroundImage:normalImage forState:UIControlStateNormal];
// Also set a background image for all other states.
在UIButton类别中,我有这种方便的方法来设置 Headers :
- (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在顶部绘制文本,但我想知道我在这里遇到的已知问题 .
Update :我似乎通过异步设置 Headers 解决了这个问题:
_tabCell = loadTopNibObject(@"MYTabSmall3HeaderCell");
dispatch_async(dispatch_get_main_queue(), ^{
_tabCell.tab0Button.normalTitle = @"Option 1";
_tabCell.tab1Button.normalTitle = @"Option 2";
_tabCell.tab2Button.normalTitle = @"Option 3";
});
Update 2 :没有,上面没有打破并打印出空按钮's text, which reports the correct string even though the button appears blank. I' ve也尝试在触摸按钮时运行 setNeedsDisplay:
,无济于事 . 还尝试在触摸时将按钮文本重新设置为某个特定字符串(例如 @"test"
),但这不会引发任何可见的放置 .