【发布时间】:2018-06-20 07:41:55
【问题描述】:
我有一个 UIScrollView 持有一个 ContentView,该 ContentView 持有其他可互换的 UIView。 可以显示多个 UIView,但是其中一个 UIView 具有动态内容,因此如果单击按钮会更改其高度,也可以缩回。
结构如下 - UIScrollView -> ContentView(UIView) -> UIView :
我无法正确设置自动布局锚点,当 UIView 更改高度(单击按钮)时,内容大小不会改变。所以我可以滚动查看内容的增长,但它不再可点击,额外的增长高度与不可点击的高度相同(ContentView 没有改变它的高度)
当前设置:
滚动视图: 锚定在 0 周围的父视图
ContentView:锚定在 0 以滚动查看。绑定到父视图的高度和宽度。
UIViews: 锚定在 0 到 ContentView 周围。
有什么想法可以改变来解决这个问题吗?
旁注:我不会反对删除 ContentView,但无论哪种方式都无法使其正常工作。
【问题讨论】:
-
内容视图不应具有与其父视图相等的高度约束...
-
@AndréSlotta 这对我来说没有意义,但这就是很多教程对滚动视图中的自动布局所做的。我等于它的高度是多少?我尝试了恒定的高度,但没有奏效
-
内容视图没有得到任何明确的高度限制。相反,您必须确保内容视图中的所有视图都具有从内容视图的最顶部到最底部的有效约束,以便它可以计算自己的大小。
-
@AndréSlotta 感谢您的帮助。内容视图中的视图是 xibs,我无法获得的唯一约束是 xib(s) 的最后一个视图元素(例如 uibutton)和实际 xib 的底部之间。似乎不允许我,使整个视图变得怪异。但会尝试专注于此,看看是否能解决任何问题
-
@AndréSlotta 非常感谢 - 我搞定了。 xib 中的“完整”高度约束是缺失的部分。
标签: ios swift uiview autolayout