我有一个视图,我隐藏在屏幕的底部,并希望它上面的scrollView调整并填充空白空间。
屏幕底部的视图是GADBannerView,固定高度为50(bannerHeight)。它上面的滚动视图对容器底部的约束等于50(scrollConstraint)。见照片。
在viewDidLoad中,我将这些约束设置为以下内容:
bannerHeight.constant = 0
scrollConstraint.constant = 0
这导致bannerView确实消失了,但滚动视图保留在原始位置并且没有填充空白区域。
答案 0 :(得分:0)
您可以强制超级视图考虑约束的更改,因为这不会自动发生。将代码添加到viewDidLayoutSubviews()中,或者在viewDidLoad()中将常量设置为0后调用view.layoutIfNeeded()。
如果这不起作用,您可以尝试这种替代方法:
转到故事板并单击滚动视图的底部约束(蓝色线为滚动视图提供其底部约束为50)。在Attributes Inspector中,您应该能够看到有关约束的详细信息,它应该看起来像这样
在要求标识符的字段中,为其命名" ScrollViewBottom"或者你喜欢什么名字。
现在循环遍历组成滚动视图的所有约束,并使用标识符名称找到正确的名称,并将其更改为常量,如下所示
for constraint in yourScrollView.superview!.constraints {
if constraint.identifier == "ScrollViewBottom" {
constraint.constant = 0
}
}
最后,强制视图在
之后直接调用以下内容来考虑此更改 view.layoutIfNeeded()