我使用class sizes
为iPhone和iPad制作了不同的布局(我将布局留空Any-Any
)。包括Regular-Compact
在内的iPhone布局工作正常,但我遇到的问题是iPad的布局。
我已经为iPad Landscape制作了Regular-Any
布局,并为iPad Portrait制作了Any-Regular
布局。
我使用两种IBOutletCollections
进行横向和纵向约束,并将它们应用于:
if (_needsiPadConstraintsApplied) {
if (UIInterfaceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation)) {
[NSLayoutConstraint deactivateConstraints:self.iPadLandscapeConstraints];
[NSLayoutConstraint activateConstraints:self.iPadPortraitConstraints];
} else {
[NSLayoutConstraint deactivateConstraints:self.portraitConstraintsIPad];
[NSLayoutConstraint activateConstraints:self.landscapeConstraintsIPad];
}
_needsiPadConstraintsApplied = NO;
}
但是当我使用 iPad 运行我的项目时,我的应用程序正在终止,
错误:
由于未捕获的异常"NSGenericException"而终止应用, 原因:"无法激活>项的约束,并且 <_UILayoutGuide:0x7f9a1b62a9e0;帧 = (0 0; 0 0);隐藏 = 是; 层 =>,因为它们没有共同的祖先。是否约束 引用不同视图层次结构中的项目?这是违法的。
我已经尝试了很多解决方案,但都不适合我。
您可以使用大小类轻松设置横向纵向模式,而无需所有方向的任何代码。只是寻找 视频链接 .
还有这些.
-
链接 1
-
链接 2
谢谢。