我打算使用界面生成器爲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