Xcode版本为9,iOS11并且工作正常,但iPhone x除外。 UI得到了倒塌
问题描述:
我已经创建了两个
UIView
一个headerview
和第二是UICollectionView
的UIScrollView
两个子视图和我有隐藏我的NavigationBar
整个应用程序。Xcode版本为9,iOS11并且工作正常,但iPhone x除外。 UI得到了倒塌现在我已经添加以下代码集“SafeAreaLayoutGuides”在iOS11但在这里应用粗鲁由于上海华零发现。
我已经添加下面的代码。
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];
答
如果parentView
是nil(因为self.view.superview
是nil
),那么这意味着self.view
尚未添加到视图层级结构尚未。
确保无论包含此视图的视图都称为self.addSubview(childView)
;这将修复“nil
superview”问题。
代码在哪里? –
对不起...我刚刚更新。@ RonakThakkar –
我在iOS11中遇到了一些问题。 –