我正在开发一个最低支持iOS 5的iOS应用,但是我遇到了一个奇怪的UILabel问题。或许是我忽略了明显的问题。无论如何,我的问题是我有一个要居中文本对齐的UILabel,在iOS 5上都运行良好,但在iOS 6上始终左对齐。我已经看到了设置UILabel文本对齐的旧方法已被弃用,而设置为这样应该可以工作。
self.topComment.textAlignment = NSTextAlignmentCenter;
但即便如此,在iOS 5上仍然只能居中对齐,在iOS 6上则是左对齐。 我有一些代码可以调整标签中文本的字体大小,尝试使其适应最小和最大大小。
UIFont *font = self.topComment.font;
for(int i = maxFont; i > minFont; i--)
{
// Set the new font size.
font = [font fontWithSize:i];
CGSize constraintSize = CGSizeMake(self.topComment.frame.size.width, 1000);
CGSize labelSize = [topString sizeWithFont:font constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];
if(labelSize.height <= self.topComment.frame.size.height ) {
fits = YES;
break;
}
//self.topComment.text = topString;
}
self.topComment.font = font;
self.topComment.text = topString;
这就是我对标签所做的唯一更改,但它在iOS 6中总是左对齐。需要注意的是,如果我插入一个带文本并且居中对齐的UILabel,并且不使用上述代码,则在iOS 5和6上都是居中对齐的。