删除广告横幅,不能使应用程序成为全屏

Remove Ads Banner and can not make App becomes Full Screen

我的应用程序有一个包含容器视图和广告横幅的根视图控制器。使用自动布局将容器视图的底部固定到广告横幅的顶部。

我的要求是删除广告横幅后,容器视图必须调整为全屏。

我做不到。我通过将其设置为 nil 或将其从 superview 中删除来删除广告横幅。但 Container View 仍然保持相同的大小和相同的位置,在 Ads Banner 所在的底部留下空白 space。

我还尝试使用此代码为容器视图设置新约束

containerViewBottomConstraint = NSLayoutConstraint(item: containerView, attribute: NSLayoutAttribute.Bottom, relatedBy: NSLayoutRelation.Equal, toItem: view.superview, attribute: NSLayoutAttribute.Bottom, multiplier: 1, constant: 0)

但随后应用程序因此错误而崩溃。

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '* +[NSLayoutConstraint constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:]: A multiplier of 0 or a nil second item together with a location for the first attribute creates an illegal constraint of a location equal to a constant. Location attributes must be specified in pairs.

假设广告横幅高度为 50,那么只需将容器视图的底部约束作为 class 的出口即可。

然后像这样调整约束:

containerViewBottomConstraint.constant = -50

您可能需要调用 self.view.layoutIfNeeded() 才能使用新约束刷新视图。

祝你好运!