Xcode 版本为 9,iOS11 并且除了 iPhone x 之外工作正常。 UI 崩溃了

Posted

技术标签:

【中文标题】Xcode 版本为 9,iOS11 并且除了 iPhone x 之外工作正常。 UI 崩溃了【英文标题】:Xcode version to 9, iOS11 and works fine except iPhone x. UI got collapsed 【发布时间】:2017-10-18 05:46:09 【问题描述】:

    我创建了两个UIView 一个headerview,第二个是UICollectionView UIScrollView 的两个子视图,我隐藏了我的NavigationBar 整个应用程序。

    现在我在 ios11 中为设置 "SafeAreaLayoutGuides" 添加了以下代码,但由于发现 superview nil,此处的应用程序很糟糕。

我已经添加了下面的代码。

    UIView *parentView = self.view.superview;
    UIView *childView = scrollViewMain.superview;
    childView.translatesAutoresizingMaskIntoConstraints = NO;

    NSLayoutConstraint *topConstraint;
    NSLayoutConstraint *bottomConstraint;

    if (@available(iOS 11, *)) 
        topConstraint   = [NSLayoutConstraint constraintWithItem:childView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:parentView.safeAreaLayoutGuide attribute:NSLayoutAttributeTop multiplier:1.0 constant:0];

        bottomConstraint   = [NSLayoutConstraint constraintWithItem:childView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:parentView.safeAreaLayoutGuide attribute:NSLayoutAttributeBottom multiplier:1.0 constant:0];
     else 
        topConstraint   = [NSLayoutConstraint constraintWithItem:childView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:parentView attribute:NSLayoutAttributeTop multiplier:1.0 constant:0];

        bottomConstraint = [NSLayoutConstraint constraintWithItem:childView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:parentView attribute:NSLayoutAttributeBottom multiplier:1.0 constant:0];
    

    [parentView addConstraint:topConstraint];
    [parentView addConstraint:bottomConstraint];

【问题讨论】:

代码在哪里?? 对不起...我刚刚更新了。@RonakThakkar 我在 iOS11 中遇到了一些问题。 你什么时候打电话给这个?从笔尖醒来?视图加载?视图会出现吗?您收到的确切错误消息是什么,它出现在哪里?编译结果?控制台日志? 关于 viewWillAppear 方法。 【参考方案1】:

如果parentView 为nil(因为self.view.superviewnil),那么这意味着self.view 尚未添加到视图层次结构中。

确保包含此视图的任何视图都调用了self.addSubview(childView);这将解决“nil superview”问题。

【讨论】:

以上是关于Xcode 版本为 9,iOS11 并且除了 iPhone x 之外工作正常。 UI 崩溃了的主要内容,如果未能解决你的问题,请参考以下文章