ios6 uilabel不居中文本alignment

我正在做一个ios应用程序最低ios 5,我刚刚打了一个奇怪的问题与uilabels。 或者也许我错过了一些明显的 无论如何,我的问题是,我有一个uilabel是中心文本alignment。 所有工作正常在iOS 5,但在iOS 6它总是左alignment。 我看到,做uilabel文本alignment的旧方式已经被弃用,并且设置它应该工作。

self.topComment.textAlignment = NSTextAlignmentCenter; 

但即使这样,它仍然只是中心alignment的ios 5和左alignment的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; 

所以这是我正在做的唯一的标签,但它始终左alignment在iOS 6中。重要的是要注意,如果我放在文本和中心alignment它的uilabel而不使用上面的代码,那么它是集中在两个ios 5和6。

好吧,看起来像打开拧紧字母间距ios 5和6有不同的结果。我真的不能解释为什么差异,但只是把这个closures给我所需的标签中心。 只要在这里留下这个答案,以防其他人犯同样的愚蠢错误。

例如:

  lbl.adjustsLetterSpacingToFitWidth = NO; 

请注意,这在iOS 7.0中已被弃用。

对于iOS 6或更高版本:

 label.textAlignment = NSTextAlignmentLeft;