我在scrollview中有一个标签,可以只有1行和多达10行。我无法弄清楚如何使scrollview内容大小动态化,以便相应地延伸。
我尝试添加> = 100(任意数字)的高度限制,但后来抱怨它是Inequality Constraint Ambiguity
。
答案 0 :(得分:2)
快速回答
Lines
属性设置为0
,Line Breaks
设置为Word Wrap
。contentView
的高度。<强>解释强>
为了让滚动视图推断其内容大小,它必须具有从边距到子视图到边距的约束 - 想象它就像气球一样,内容是内部的空气推动墙壁以使气球达到它的大小。从子视图到边距的约束允许子视图的大小推动内容视图的墙。
对于标签设置,Lines
属性为0
表示它将具有可变数量的行,就像您想要的那样。设置为Line Breaks
的{{1}}属性意味着它将确保单词不会被截断(截断)或分解为字符,而是将其作为整个单词推送到下一行。
答案 1 :(得分:0)
如果您没有为UILabel
指定高度限制,则它将采用适合整个文本的高度。只需确保将行数设置为0,并确保标签设置了所有边距约束。
答案 2 :(得分:0)
Apple的这篇技术说明解释了如何使用仅自动布局https://developer.apple.com/library/ios/technotes/tn2154/_index.html正确配置具有可滚动内容的滚动视图。
从概念上讲,在您的情况下,这就是您需要做的事情:
查看层次结构:
MainView -> ScrollView -> ContentView -> UILabel
这里的关键是要意识到contentView的大小只取决于UILabel的大小,因此UILabel高度会延伸,所以contentView也是如此。这将允许scrollView自动推断contentSize并在需要时启用滚动。