我打算使用界面生成器为iPad设计一个屏幕。我有一个空的视图和我加入的UIImageView作为壁纸用4个约束:用于iPad的几乎空UIView上的模糊布局
Leading Space to superview = 0
Trailing Space to superview = 0;
Top Space to superview = 0;
Bottom Space to superview = 0;
以这种方式,图像在横向模式下完全调整大小。
我插在viewDidAppear一些调试代码:和didRotateFromInterfaceOrientation:
NSLog(@"%@", [[UIWindow keyWindow] _autolayoutTrace]);
只有屏幕,我得到在纵向模式下的ambigous布局输出这个元素:
*<UIWindow:0x754c210>
| *<UIView:0x75555f0> - AMBIGUOUS LAYOUT
| | *<UIImageView:0x7555650> - AMBIGUOUS LAYOUT
在横向模式下,似乎工作正常
*<UIWindow:0x754c210>
| *<UIView:0x75555f0>
| | *<UIImageView:0x7555650>
之后,我的广告代码更多的控制和屏幕似乎工作正常,但我无法摆脱那种模糊的布局。 我做错了什么?
您只能在lldb会话中调用_autolayoutTrace。它不会像上面所写的那样编译。你可以调用UIView方法'hasAmbiguousLayout',但是这会告诉你一个单一的视图,而不是它的后代。要做到这一点,人们可以编写一个方法缓存所有子视图,并在每个子视图上调用hasAmbiguousLayout。请记住,仅适用于开发时间,不适用于运输代码。 – idStar