多行 UILabel 和 UIScrollview 使用自动布局

Posted

技术标签:

【中文标题】多行 UILabel 和 UIScrollview 使用自动布局【英文标题】:Multiline UILabel with UIScrollview using autolayout 【发布时间】:2015-03-14 09:53:08 【问题描述】:

我在scrollview 中阅读了很多contentview 的帖子,但问题略有不同。查看图片

我有以下层次结构

这里的labelmultiline label,它的内容大小太多了。 所以,问题是 1.根据label的线条,label的高度发生变化 2.根据label的高度,contentview的高度变化。 所以,它滚动。我希望用autolayout来完成这些事情。 我想提一提的是,我使用的是 ios 8.1 和 xcode 6.1

【问题讨论】:

【参考方案1】:

你可以为你的 UILabel 使用的东西是 -> 选择你的标签并转到 Attributes Inspector 并找到 Autoshrink 将其设置为 Minimum font size 然后你可以描述你的最小字体大小。

除了您的视图,您可能希望在标签和内容视图之间使用约束。所以我推荐使用这个文档Auto Layout Guide。如果文档太长而无法阅读,您可以阅读this answer。

【讨论】:

【参考方案2】:

您应该将约束添加到内容视图作为前导、尾随、顶部、底部和等宽和等高与滚动视图。对于 imageView 添加约束作为前导、尾随、顶部和高度。对于标签添加约束作为前导、尾随、顶部和底部,还要检查您是否将行数设置为零。 & 对于阅读更多按钮,在容器和底部添加高度、宽度、水平居中等约束。不要忘记为按钮添加底部约束,否则您的滚动视图无法理解其内容大小,并且您将收到警告,因为滚动视图的内容大小不明确。

【讨论】:

以上是关于多行 UILabel 和 UIScrollview 使用自动布局的主要内容,如果未能解决你的问题,请参考以下文章

UILabel numberOfLines 随动画变化

以编程方式将 UILabel 和 UIImageViews 添加到 UIScrollView

如何将 UILabel 添加到 UIScrollView?

使用 Interface Builder 和 Autolayout 在 UIScrollView 中正确调整 UILabel 的大小?

UIScrollView 需要根据 UILabel 大小进行扩展但保持底部标签栏

UIScrollView 中的 Swift-Xcode UILabel