标签文本多行对齐
我有一个多行标签。我希望标签上的文本始终从左上角开始,与标签的高度和行数无关。
现在我正在使用一个属性
[question1Label setContentMode: UIViewContentModeTopLeft];
,但它不起作用,
谢谢
I have a label with multiple lines .I want the text on the label always starts from top left corner independent of the height and number of lines of label.
Right now i am using a property
[question1Label setContentMode: UIViewContentModeTopLeft];
But its not working
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我注意到 UILabel 的 contentMode 属性不会影响其文本的对齐方式。使用textAlignment属性。
编辑:这将使文本居左对齐。为了从左上角显示文本,您需要使用 NSString 的
sizeWithFont:
方法找到文本的高度。 请参阅此帖子了解如何操作。作为替代方案,您可以使用
UITextField
,它是UIControl
的子类,它继承了 UIControl 的contentVerticalAlignment
属性。您可以使用此属性将文本对齐到顶部。您可以使用
userInteractionEnabled
属性禁止用户编辑文本。I've noticed that contentMode property of UILabel doesn't affect its text's alignment. Use the textAlignment property.
Edit: This will align the text Center-Left. In order to show the text from Top-Left you need to find the height of the text using
sizeWithFont:
method of NSString. See this SO post to know how to do it.As an alternative you can use
UITextField
, the subclass ofUIControl
, which inherits UIControl's thecontentVerticalAlignment
property.You can use this property to align the text on top. You can disable the user from editing the text by using the property
userInteractionEnabled
property.接受的答案不再对我有用,因为 UITextAlignmentLeft 已被贬值。
下面的效果很好!
The accepted answer no longer worked for me as UITextAlignmentLeft has been depreciated.
The following works great!