2
  1. 我已经创建了两个UIView一个headerview和第二是UICollectionViewUIScrollView两个子视图和我有隐藏我的NavigationBar整个应用程序。Xcode版本为9,iOS11并且工作正常,但iPhone x除外。 UI得到了倒塌

  2. 现在我已经添加以下代码集“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]; 
+2

代码在哪里? –

+0

对不起...我刚刚更新。@ RonakThakkar –

+0

我在iOS11中遇到了一些问题。 –

回答

1

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

确保无论包含此视图的视图都称为self.addSubview(childView);这将修复“nil superview”问题。

相关问题