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.superview
为nil
),那么这意味着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) 版本构建