我正在开发一个最低版本为 ios 5 的 ios 应用程序,我刚刚遇到了 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。
好吧,看起来打开“收紧字母间距”在 ios 5 和 6 上会产生不同的结果。老实说,我无法解释为什么会出现这种差异,但只要关闭此功能即可为我提供所需的标签居中效果。只是将其留在这里作为答案,以防其他人犯同样的愚蠢错误。
例如:
lbl.adjustsLetterSpacingToFitWidth = NO;
请注意,iOS 7.0 中已弃用此功能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)