标签文本对齐多行

时间:2011-06-14 14:04:56

标签: iphone objective-c ios label alignment

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

现在我正在使用一个属性

[question1Label setContentMode: UIViewContentModeTopLeft];

但它不起作用

由于

2 个答案:

答案 0 :(得分:6)

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

label.textAlignment = UITextAlignmentLeft; 

修改:这将对齐文本Center-Left。为了显示来自左上角的文本,您需要使用 NSString sizeWithFont:方法找到文本的高度。 See this SO post知道如何做到这一点。

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

textField.contentVerticalAlignment = UIControlContentVerticalAlignmentTop;

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

答案 1 :(得分:0)

由于UITextAlignmentLeft已被折旧,所接受的答案对我不再有效。

以下效果很棒!

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