使用时,NSAutoresizingMaskLayoutConstraint中断:setFrame

时间:2017-10-25 21:47:31

标签: ios objective-c xcode autolayout

在以编程方式将自定义视图添加到现有视图控制器(使用NIB创建)时,我遇到了一些问题。具体来说,当该视图控制器出现时,我收到以下错误消息:

(
    "<NSAutoresizingMaskLayoutConstraint:0x1c4290a90 h=--& v=--& InfoToolbar:0x135e73d00.midY == 1002   (active)>",
    "<NSAutoresizingMaskLayoutConstraint:0x1c4290ae0 h=--& v=--& InfoToolbar:0x135e73d00.height == 44   (active)>"
)

Will attempt to recover by breaking constraint 
<NSAutoresizingMaskLayoutConstraint:0x1c4290a90 h=--& v=--& InfoToolbar:0x135e73d00.midY == 1002   (active)>

InfoToolbar是一个应该位于屏幕底部的视图,它的框架设置为[bottomBar setFrame:CGRectMake(0, screenHeight-44, screenWidth, 44)]

这段代码是很久以前编写的,当我们升级到XCode 9时似乎问题就出现了。错误很奇怪,因为这些约束似乎工作正常(即如果视图高44,那就是&#39; s在这种情况下,中点将高于视图底部21,对于iPad Air来说将是1002。)

我已经对SO进行了一些研究,我尝试将此视图上的setTranslatesAutoresizingMaskIntoConstraints设置为false,但是当我这样做时,视图会完全消失并且出现AUTOLAYOUT AMBIGUOUS错误。

有什么想法?谢谢!

0 个答案:

没有答案