【发布时间】:2016-05-22 13:16:49
【问题描述】:
我的应用有一个根视图控制器,其中包含容器视图和广告横幅。 Container View 的底部使用 Auto Layout 固定到 Ads Banner 的顶部。
我的要求是当广告横幅被移除时,容器视图必须调整为全屏。
我做不到。我通过将其设置为 nil 或将其从 superview 中删除来删除广告横幅。但是 Container View 仍然保持相同的大小和相同的位置,在 Ads Banner 所在的底部留下一个空白区域。
我还尝试使用此代码为容器视图设置新约束
containerViewBottomConstraint = NSLayoutConstraint(item: containerView, attribute: NSLayoutAttribute.Bottom, relatedBy: NSLayoutRelation.Equal, toItem: view.superview, attribute: NSLayoutAttribute.Bottom, multiplier: 1, constant: 0)
但随后应用程序因此错误而崩溃。
由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'* +[NSLayoutConstraint constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:]:乘数为 0 或第二个项目的位置为零第一个属性创建一个非法的位置约束,该约束等于一个常数。位置属性必须成对指定。
【问题讨论】:
标签: swift autolayout constraints iad