【问题标题】:Label Text alignment with multiple lines标签文本与多行对齐
【发布时间】:2011-09-14 17:54:07
【问题描述】:

我有一个多行标签。我希望标签上的文本始终从左上角开始,与标签的高度和行数无关。

现在我正在使用一个属性

[question1Label setContentMode: UIViewContentModeTopLeft];

但它不起作用

谢谢

【问题讨论】:

    标签: iphone objective-c ios label alignment


    【解决方案1】:

    我注意到 UILabel 的 contentMode 属性不会影响其文本的对齐方式。使用 textAlignment 属性。

    label.textAlignment = UITextAlignmentLeft; 
    

    编辑:这将使文本居中对齐。为了从左上角显示文本,您需要使用 NSString 的 sizeWithFont: 方法找到文本的高度。 See this SO post知道怎么做。

    作为替代方案,您可以使用UITextField,UIControl 的子类,它继承UIControl 的contentVerticalAlignment 属性。

    textField.contentVerticalAlignment = UIControlContentVerticalAlignmentTop;
    

    您可以使用此属性来对齐顶部的文本。您可以使用属性userInteractionEnabled 属性来禁止用户编辑文本。

    【讨论】:

    • 我使用这个属性,但它只从左对齐文本,但我想从顶部开始我的文本。
    【解决方案2】:

    由于 UITextAlignmentLeft 已被贬值,因此接受的答案不再适用于我。

    下面的效果很好!

    // Allow multiline label centered
    [label setNumberOfLines:0];
    [label setTextAlignment:NSTextAlignmentCenter];
    

    【讨论】:

      猜你喜欢
      • 2013-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-25
      • 2023-01-13
      • 2013-06-07
      • 1970-01-01
      • 2010-11-13
      相关资源
      最近更新 更多