我正在开发ios应用程序最小ios 5,我刚刚与uilabels发生了一个奇怪的问题.或者也许是我遗漏了一些明显 无论如何,我遇到的问题是我有一个uilabel,它将以文本对齐为中心.所有在ios 5上工作正常,但在ios 6上它总是左对齐.我看到旧的uilabel文本对齐方式已经弃用了,设置它应该可以工作.
self.topComment.textAlignment = NSTextAlignmentCenter;
Run Code Online (Sandbox Code Playgroud)
但即便如此,它仍然只在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;
Run Code Online (Sandbox Code Playgroud)
所以这是我对标签做的唯一的事情,但它始终在ios 6中保持对齐.重要的是要注意,如果我放入带有文本和中心对齐的uilabel并且不使用上面的代码,那么它将以两者为中心ios 5和6.
glo*_*gic 37
好吧看起来像打开Tighten Letter Spacing在ios 5和6上有不同的结果.老实说,我无法解释为什么差异,但只是关闭它给我所需的标签中心.把它留在这里作为答案,以防其他人犯同样的愚蠢错误.
例如:
    lbl.adjustsLetterSpacingToFitWidth = NO;
Run Code Online (Sandbox Code Playgroud)
请注意,这在iOS 7.0中已弃用.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           6508 次  |  
        
|   最近记录:  |