使用故事板、自动布局和Swift来实现多行UILabel和UITextView

4
我试图添加一个多行UI标签作为标题,然后是UITextView作为内容主体。
我已经按照以下方式添加了UILabel和UITextView:-
标签的行数设置为0,字符换行以及标准的左、右、下、上约束。我还设置了一个最小高度约束,但似乎没有改变任何东西。下面的UITextView具有标签的顶部约束和左、右和底部约束到视图/布局指南。
实际输出如下:-
这个标签应该有3行,但只显示2行。
这个标签应该有2行文本,文本为“三环类抗抑郁药物”,但最后一行不可见。
我的设置/约束有问题吗?
谢谢

1
我假设您正在为两个标签设置preferredMaxLayoutWidth。您能否尝试将标题标签的最大布局宽度减少10个点?最近我有一种预感,iOS 8可能存在这方面的错误。 - Harry
谢谢您的评论。我没有为任何控件设置preferredMaxLayoutWidth。我需要设置它吗?还是一切都可以使用storyboards完成? - Rajeev Bhatia
1
在iOS 8中,界面生成器有一个新的部分可以设置;但是,通常不需要设置-它应该自动工作。如果我是正确的,并且这是preferredMaxLayoutWidth的错误,您需要在layoutSubViews中进行设置。在调用[super layoutSubViews]之后,做一些像label.preferredMaxLayoutWidth = label.frame.size.width - 10的事情。看看是否有效。 - Harry
原來這是 iOS 的一個錯誤。我只需將 preferredMaxLayoutWidth 設置為 lbl.preferredMaxLayoutWidth = self.view.bounds.width,就可以完美地運作了。感謝您所有的意見。請將您的評論寫成單獨的答案,以便我可以將其標記為答案。 - Rajeev Bhatia
2个回答

2

请执行以下两个操作:

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

嗨,谢谢回复。我的高度约束已经大于或等于了,我尝试增加行数到3行,但没有帮助。 - Rajeev Bhatia
请确保您将标签的底部约束设置为TextView。 - Sunny Shah
嗨,我的标签底部的约束设置为文本视图。实际上,我没有为标签添加底部约束,但我为文本视图添加了顶部约束,因此它也为标签添加了底部约束。 - Rajeev Bhatia

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

嗨,感谢您的回复。默认情况下,我将垂直和水平内容压缩阻力设置为750,适用于两个控件。我将标签的垂直压缩改为1000,但这并没有解决问题。我忘了提到,即使我删除textview,标签也无法显示完整的文本。 - Rajeev Bhatia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接