当viewController从XIB加载但从Storyboard加载时不起作用时,Autolayout工作

时间:2015-08-11 23:28:48

标签: objective-c cocoa cocoa-touch autolayout

我有一个项目here。 Autolayout约束仅在从Xib文件加载时才起作用。

当你运行项目时,你会看到一个带有NSPagecontroller的单个屏幕,它有两个视图(向左/向右滑动以获得另一个视图)。

两个视图与完全相同的自动布局约束完全相同。一个使用Xib加载,另一个使用Story board加载。

尝试在屏幕上加载xib时调整窗口大小。你可以看到每件东西都正确调整大小。现在向左滑动屏幕。现在尝试调整窗口大小。从故事板加载的视图不会自动调整大小。

这是Apple的错误吗?

1 个答案:

答案 0 :(得分:0)

观点不完全相同。如果我删除了故事板中的视图,并从xib中复制粘贴视图,则故事板版本的行为与预期一致。

所有这个storyboard / xib约束优点的问题在于,如果出现问题,它们是完全痛苦的调试。

尝试发现差异:

(1)ViewController.xib

enter image description here

(2)故事板

enter image description here

出于这个原因,我倾向于处理代码中的所有约束。

左上角按钮比较:

(1)ViewController.xib

enter image description here

(2)故事板

enter image description here

其他按钮限制也不同。