当Uiview高度更改时,更新AutoLayout约束



我当前有一个uiview(我们将其称为 viewB(添加到父级UISCrollView中,我们将称为scrollView。此功能如预期的那样,添加了 viewB so;

viewB.topAnchor.constraint(equalTo: scrollView.topAnchor).isActive = true
viewB.leadingAnchor.constraint(equalTo: scrollView.leadingAnchor).isActive = true
viewB.trailingAnchor.constraint(equalTo: scrollView.trailingAnchor).isActive = true
viewB.bottomAnchor.constraint(equalTo: scrollView.bottomAnchor).isActive = true

viewBscrollView高,因此其垂直滚动的能力。

在我的应用程序中的某个时刻,用户可以点击一个按钮,该按钮为viewB添加了更多内容,从而更改viewB的高度。在该按钮点击上,scrollView似乎不知道要更新其任何约束,并且viewB最终会更改位置,并且不会按预期出现。

我会称呼哪些方法(以及哪些视图(强制自动划分告诉scrollView viewB改变了尺寸?还是从scrollView中删除viewB,然后重新添加新约束?

更有效

子视图内部的视图中应随时从上到下正确钩上滚动浏览量的视图,因此,当您添加新的子视图中的新子视图时,您需要正确插入该链中,然后将其正确插入致电

self.view.layoutIfNeeded()

如果对于e.x,则在底部添加它,则应删除带有ViewB的大多数底部子视图的底部约束,然后将其挂钩到新视图的顶部,然后重新钩,并将New Subview的底部到ViewB的底部加上高度&宽度&x约束最终再次刷新布局,这是一个繁琐的问题,因此您要么选择它,要么使用此提示

提示:而不是使用UISCROLLVIEW手动管理约束,您可以使用UITAITHVIEW或用UistackView替换ViewB,该UistackView可以轻松删除/添加/添加/插入函数

最新更新