인터페이스 빌더를 사용하여 iPad 용 화면을 디자인하려면 trng해야합니다. 나는 빈보기를하고 난 4 개 제약 벽지로있는 UIImageView를 추가 :이 방법으로iPad 용 거의 비어있는 UIView의 모호한 레이아웃
Leading Space to superview = 0
Trailing Space to superview = 0;
Top Space to superview = 0;
Bottom Space to superview = 0;
는 이미지가 가로 모드에서 완벽하게 크기를 조정합니다. , 가로 모드에서
*<UIWindow:0x754c210>
| *<UIView:0x75555f0> - AMBIGUOUS LAYOUT
| | *<UIImageView:0x7555650> - AMBIGUOUS LAYOUT
: 나만 세로 모드에서 ambigous 레이아웃 출력을 얻을 화면에이 요소
NSLog(@"%@", [[UIWindow keyWindow] _autolayoutTrace]);
: 및 didRotateFromInterfaceOrientation :
는 좀 디버그 viewDidAppear에 코드를 삽입 잘 작동하는 것 같습니다.
*<UIWindow:0x754c210>
| *<UIView:0x75555f0>
| | *<UIImageView:0x7555650>
더 많은 컨트롤을 추가하고 화면이 잘 작동하는 것처럼 보이지만 모호한 레이아웃을 제거 할 수는 없습니다. 내가 뭘 잘못하고있어?
lldb 세션 내에서만 _autolayoutTrace를 호출 할 수 있습니다. 위에 작성한대로 컴파일되지 않습니다. 당신은 UIView 메서드 'hasAmbiguousLayout'을 호출 할 수 있습니다. 그러나 이것은 하나의 뷰에 대해 알려주고 decedents는 알려주지 않습니다. 이를 위해, 모든 하위 뷰를 통해 재귀 호출하고 각각에 대해 hasAmbiguousLayout을 호출하는 메소드를 작성합니다. 개발시에만 코드를 전달하는 것이 아니라 기억하십시오. – idStar