ios - 如何用文本动态打破 UILabel 的行?

标签 ios uilabel ios10

我有一个 UILabel,我想在此标签中显示一些文本。我想将标签宽度最多增加到设备全屏的 70%。如果该标签的文本长度不适合这 70% 的大小,那么只要文本长度,标签就会自动转到下一行。每当标签长度超过主屏幕宽度的 70% 时,线条也会断开。我尝试了几种方法,但仍无法解决。请帮我解决这个问题。

提前致谢;

最佳答案

将标签拖到您的 Storyboard并为其添加顶部和前导约束。

现在选择标签并将控件拖动到包含标签的 View (在您的 ViewController View 中),您将看到弹出窗口,然后选择等宽

Xcode storyboard screenshot

现在您的标签宽度等于您的 View 宽度 :) 那不是您希望您的标签宽度为 View 的 70%。所以选择label的equal constraint,去property inspector把multiplier改成0.7

Xcode storyboard screenshot

现在您的标签宽度是 View 的 70%!

但您不希望它总是 70%。它最多可以占屏幕的 70%,所以 现在改变约束关系从等于小于等于。

Xcode storyboard screenshot

选择标签并将行数更改为 0。

就是这样 :) 玩得开心 :)

示例 O/P:

文本较短与较长时:

example when text is small - - - example when text is more

编辑:

不使用 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/

相关文章:

ios - 应用程序传输安全 key NSAllowsArbitraryLoadsInMedia 在 iOS 10 上未按预期工作

ios - NSMutabledictionary 为 nil NSJSONSerialization

ios - Sharekit 中 Linkedin 请求错误

ios - 正确检查 Objective-C 中是否存在 C 函数

java - 通过 HTTPS 网络加密/解密

ios - 为什么 UITextView 会合并之前设置的 attributedText 的属性?

ios - 未对齐的 UILabel

swift - 如何用动画改变单元格编辑风格

iphone - 更改 UILabel 或字体的大小以适合重音字符

ios - Xcode 版本 8 中的代码签名问题