我有一个带有多行的标签。我希望标签上的文字始终从左上角开始,与标签的高度和行数无关。
现在我正在使用一个属性
[question1Label setContentMode: UIViewContentModeTopLeft];
但它不起作用
由于
答案 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];