如何更改自动布局约束
Posted
技术标签:
【中文标题】如何更改自动布局约束【英文标题】:how to change autolayout constraints 【发布时间】:2016-10-05 05:32:48 【问题描述】:我遇到了一个与自动布局相关的问题。说我创建view1和view2,view2是view1的子视图。我在它们之间创建了右、左、上、下约束。
那么,随着view2中内容的增加,view2的高度也必须增加。 view1 的高度应该增加以保持底部约束。
那么,我现在该怎么办?增加两者的框架高度以显示新内容并同时保持约束?
我想我还是不太了解autoLayout和frame,谁能给我一些建议,谢谢。
更新:
实际上 View2 是一个 UICollectionView,我想增加它的高度以显示所有单元格而不滚动。所以随着数据的增长,我必须增加 View2 的大小。
【问题讨论】:
什么会增加 View2 的大小? 只要 view1 的底部没有约束保持其大小固定,那么只要 view2 的内容正确地使 view2 正确调整大小,view2 就应该能够将 view1 向下推 @Mr.UB actully View2 是一个 UICollectionView ,我想增加它的高度以显示所有单元格而不滚动。所以随着数据的增长,我必须增加 View2 的大小。 @Fonix view1底部有个约束我没提,否则IB会报AutoLayout相关的错误。 collection view 高度不能根据其中的单元格来改变,你必须做一些编程的东西,而不仅仅是自动布局。 【参考方案1】:为了在view2的高度增加时增加view1的高度,首先可以给view1内部的view2赋予0Leading、Top、Trailing、Bottom约束,给view2一个高度约束而不给view1,所以当view2 的高度增加了 view1 的高度也会增加。
【讨论】:
以上是关于如何更改自动布局约束的主要内容,如果未能解决你的问题,请参考以下文章
iOS:如何在其附件视图更改时触发 tableViewCell 的约束/自动布局刷新?