标签文本多行对齐

发布于 2024-11-15 12:21:55 字数 179 浏览 1 评论 0原文

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

现在我正在使用一个属性

[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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

北凤男飞 2024-11-22 12:21:55

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

label.textAlignment = UITextAlignmentLeft; 

编辑:这将使文本居左对齐。为了从左上角显示文本,您需要使用 NSStringsizeWithFont: 方法找到文本的高度。 请参阅此帖子了解如何操作。

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

textField.contentVerticalAlignment = UIControlContentVerticalAlignmentTop;

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

I've noticed that contentMode property of UILabel doesn't affect its text's alignment. Use the textAlignment property.

label.textAlignment = UITextAlignmentLeft; 

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 of UIControl, which inherits UIControl's the contentVerticalAlignment property.

textField.contentVerticalAlignment = UIControlContentVerticalAlignmentTop;

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.

羁拥 2024-11-22 12:21:55

接受的答案不再对我有用,因为 UITextAlignmentLeft 已被贬值。

下面的效果很好!

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

The accepted answer no longer worked for me as UITextAlignmentLeft has been depreciated.

The following works great!

// Allow multiline label centered
[label setNumberOfLines:0];
[label setTextAlignment:NSTextAlignmentCenter];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文