我有一个 UILabel,我想在此标签中显示一些文本。我想将标签宽度最多增加到设备全屏的 70%。如果该标签的文本长度不适合这 70% 的大小,那么只要文本长度,标签就会自动转到下一行。每当标签长度超过主屏幕宽度的 70% 时,线条也会断开。我尝试了几种方法,但仍无法解决。请帮我解决这个问题。
提前致谢;
最佳答案
将标签拖到您的 Storyboard并为其添加顶部和前导约束。
现在选择标签并将控件拖动到包含标签的 View (在您的 ViewController View 中),您将看到弹出窗口,然后选择等宽
现在您的标签宽度等于您的 View 宽度 :) 那不是您希望您的标签宽度为 View 的 70%。所以选择label的equal constraint,去property inspector把multiplier改成0.7
现在您的标签宽度是 View 的 70%!
但您不希望它总是 70%。它最多可以占屏幕的 70%,所以 现在改变约束关系从等于小于等于。
选择标签并将行数更改为 0。
就是这样 :) 玩得开心 :)
示例 O/P:
文本较短与较长时:
编辑:
不使用 Storyboard?没问题;以编程方式编写相同的约束并将其应用于足够简单的标签。如果您需要帮助,请告诉我:)
编辑:
由于您已指定要在标签中每行的开头留下间隙,您可以通过使用边缘插入来实现它
- (void)drawTextInRect:(CGRect)rect {
UIEdgeInsets insets = {0, 5, 0, 0};
[super drawTextInRect:UIEdgeInsetsInsetRect(rect, insets)];
}
关于ios - 如何用文本动态打破 UILabel 的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42778106/