我在使用autoLayout时遇到了一些问题。特别是在iOS8中。
我已经阅读了网页,并在使用UITableViewCell
时发现了类似的问题。
但在这里,我没有使用UITableViewCell
,也没有UITableView
。
如果发生这种情况,我只需要ADBannerView
和UIWebView
来处理。
我在Xcode调试器中收到以下消息:
Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want.
Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSLayoutConstraint:0x14e256f0 'UIView-Encapsulated-Layout-Height' V:[UIView:0x14e6c870(568)]>",
"<NSLayoutConstraint:0x14d9b320 V:[ADBannerView:0x14d40c30(50)]>",
"<NSLayoutConstraint:0x14d97b00 V:|-(20)-[ADBannerView:0x14d40c30] (Names: '|':UIView:0x14e6c870 )>",
"<NSLayoutConstraint:0x14d34880 ADBannerView:0x14d40c30.bottom == UIView:0x14e6c870.bottom>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x14d34880 ADBannerView:0x14d40c30.bottom == UIView:0x14e6c870.bottom>
首先我要说的是评论。我不知道第一个约束(UIView
- Encapsulated-Layout-Height)来自何处。
第二件事;我添加了一个约束(虽然已经有太多),以强制ADBannerView
的高度,修复了显示问题。
但我仍然得到了消息(正如我所料)。
如果我不添加约束来强制ADBannerView
的高度。显示屏的背景变为白色,无论我点击哪里,我都会点亮iAd。有点像ADBannerView
的高度正在填满整个显示器。
有任何解决此问题的建议吗?
当然我没有忘记:
[adBanner setTranslatesAutoresizingMaskIntoConstraints:NO];
如果有人知道发生了什么,请告诉我。
答案 0 :(得分:1)
阅读你的约束:
"<NSLayoutConstraint:0x14d9b320 V:[ADBannerView:0x14d40c30(50)]>"
ADBannerView的高度为50像素
"<NSLayoutConstraint:0x14d97b00 V:|-(20)-[ADBannerView:0x14d40c30] (Names: '|':UIView:0x14e6c870 )>"
ADBannerView固定在View的顶部,边距为20 像素
<NSLayoutConstraint:0x14d34880 ADBannerView:0x14d40c30.bottom == UIView:0x14e6c870.bottom>
您已将ADBannerView的底部固定在底部 的UIView。
"<NSLayoutConstraint:0x14e256f0 'UIView-Encapsulated-Layout-Height' V:[UIView:0x14e6c870(568)]>"
当前视图的高度为568像素。
现在,这与您分配给ADBannerView的50像素的高度相矛盾,AdBannerView被固定在距离UIView顶部20像素的位置。
ADBannerView的高度需要被破坏,还是底部的钉扎,因为两个约束都不能满足......
从UIView底部取消固定AdBannerView以解决此问题