【问题标题】:ios6 uilabel not center text alignedios 6 uilabel 不居中文本对齐
【发布时间】:2012-10-07 14:36:06
【问题描述】:

我正在开发一个最低版本为 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 为中心。

【问题讨论】:

  • 试试 UITextAlignmentCenter 而不是 NSTextAlignmentCenter
  • uitextalignmentcenter 如果我正确理解他们的文档,则不推荐用于 ios6。但我还是尝试了它来解决同样的问题
  • 你的文字是左对齐还是标签的框架正好适合文字?
  • uilabel 本身是文本对齐的。尝试将 nib 文件中的文本对齐选项居中并在代码中也进行设置
  • 您设置字体后是否尝试过重置文本对齐方式?当您设置字体时,iOS 6 可能正在重置布局

标签: objective-c ios


【解决方案1】:

好的,看起来打开 Tighten Letter Spacing 在 ios 5 和 6 上会产生不同的结果。老实说,我无法解释为什么会有这种差异,但只要关闭它就可以为我提供所需的标签居中。把这个留在这里作为答案,以防其他人犯同样的愚蠢错误。

例如:

    lbl.adjustsLetterSpacingToFitWidth = NO;

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

【讨论】:

  • 在 iOS6 上确认:如果启用了收紧字母间距,NSTextAlignmentCenter 将不起作用。
  • 天哪!非常感谢!在过去的几天里,我一直在为此头疼!没想到'tighten'有这种不良副作用!
  • 在 iOS6.1 中似乎只适用于纯文本。启用 Attributed 时,对齐无效。
  • NSTextAlignmentANYTHING 似乎在 iOS6 上不起作用,如果打开了缩紧 ketter 间距。感谢您的回答!帮助我(投票赞成)。
  • 谢谢!你拯救了我的一天!顺便说一句,在 iOS 7 中,一切正常,也是。这只是 iOS 6 的问题。
【解决方案2】:

对于 iOS 6 或更高版本:

label.textAlignment = NSTextAlignmentLeft;

【讨论】:

  • 这样设置到左边。这与 OP 的要求相反。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-13
  • 2017-03-24
  • 1970-01-01
相关资源
最近更新 更多