目标 c - iOS - 约束是否引用不同视图层次结构中的项?这是非法的



我使用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

谢谢。

最新更新