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 崩溃了的主要内容,如果未能解决你的问题,请参考以下文章

iOS 11/Xcode 9.0 中的 SFSafariViewController 空白

Xcode 9.2 不支持 iOS 11.3 的 Xcode 需要 9.3

Xcode 版本 9.1 (9B55) 上传存档失败 - iOS 11.1 - 应用程序必须使用公共 (GM) 版本构建

从 iOS 11 上的左侧菜单导航后 Xcode 9 导航栏问题不在 iOS 10.3 及更低版本上

iOS----------适配iOS12

Xcode 中的 iOS 9 警告 - 此文件设置为为比项目部署更早的版本构建。功能可能受到限制