【问题标题】:Multiline UILabel and UITextView using Storyboards, Auto Layout and Swift使用故事板、自动布局和 Swift 的多行 UILabel 和 UITextView
【发布时间】:2014-11-17 05:54:12
【问题描述】:

我正在尝试添加一个多行 UI 标签作为标题,然后添加一个 UITextView 作为内容主体。

我已经添加了 UILabel 和 UITextView 如下:-

标签的行数设置为 0,字符换行和标准的左、右、下和上约束。我还设置了最小高度限制,但这似乎并没有改变任何东西。它下面的 UITextView 对标签有一个顶部约束,对视图/布局指南有左、右和底部约束。

实际输出是这样的:-

这个标签应该有 3 行,但它只显示 2 行/

此标签应有 2 行,文字为“三环类抗抑郁药”,但最后一行不可见。

我的设置/约束有什么问题吗?

谢谢

【问题讨论】:

  • 我假设您在两个标签上都设置了 preferredMaxLayoutWidth。您可以尝试将最大布局宽度减小...例如标题标签的 10 个点吗?我最近有一种预感,iOS 8 有一个错误。
  • 感谢您的评论。我没有为任何一个控件设置 preferredMaxLayoutWidth。我需要设置它还是可以使用情节提要完成所有事情?
  • 在 iOS 8 中,界面生成器中有一个新部分可以设置;但是,它通常不需要设置 - 它应该会自动工作。但是,如果我是对的,并且这是首选MaxLayoutWidth 的错误,您将需要在layoutSubViews 中设置它。调用 [super layoutSubViews] 后,执行label.preferredMaxLayoutWidth = label.frame.size.width - 10 之类的操作。看看这是否有效。
  • 原来这是 iOS 的一个错误。我只是将preferredMaxLayoutWidth 设置为 lbl.preferredMaxLayoutWidth = self.view.bounds.width 并且它工作得很好。感谢您的所有投入。请将您的评论写为单独的答案,以便我将其标记为答案。

标签: ios swift storyboard uilabel autolayout


【解决方案1】:

做这两件事:

  1. 增加标签的行数
  2. 将高度约束设置为大于或等于

【讨论】:

  • 您好,感谢您的回复。我的高度限制已经大于或等于,我尝试将行数增加到 3,但没有帮助。
  • 确保你有标签到Textview的底部约束
  • 嗨,我的标签的底部约束设置为 textview。实际上我没有为标签添加底部约束,但我为 textview 添加了顶部约束,因此它也为标签添加了底部约束。
【解决方案2】:

确保顶部标签的垂直抗压优先级高于文本视图。

【讨论】:

  • 嗨。感谢您的回复。我将两个控件的垂直和水平内容压缩阻力默认设置为 750。我将标签的垂直压缩更改为 1000,但这并没有解决它。我忘了提及,但即使我删除了 textview,标签也不会显示完整的文本。
猜你喜欢
  • 2014-05-25
  • 1970-01-01
  • 2014-01-11
  • 1970-01-01
  • 2018-04-15
  • 2013-07-28
  • 2013-07-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多