我正在开发ios app最低版本ios 5,我刚刚与uilabels发生了一个奇怪的问题。或者也许是我遗漏了一些明显无论如何,我遇到的问题是我有一个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为中心。
答案 0 :(得分:37)
例如:
lbl.adjustsLetterSpacingToFitWidth = NO;
请注意,这在iOS 7.0中已弃用。
答案 1 :(得分:-2)
适用于iOS 6或更高版本:
label.textAlignment = NSTextAlignmentLeft;