2
  1. J'ai créé deux UIView un headerview et la seconde est UICollectionView à la fois sous-vue UIScrollView et je l'ai caché ma NavigationBar application entière.version Xcode à 9, iOS11 et fonctionne bien sauf iPhone x. UI se est effondré

  2. Maintenant, j'ai ajouté le code ci-dessous pour voir "SafeAreaLayoutGuides" dans iOS11 mais ici en raison de l'application bassement superviewnulle trouvé.

J'ai ajouté ci-dessous le code.

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

Où est le code ?? –

+0

désolé ... je viens de mettre à jour. @ RonakThakkar –

+0

J'ai un problème dans iOS11. –

Répondre

1

Si parentView est nulle (parce que self.view.superview est nil), alors cela signifie que self.view n'a pas été ajouté à la hiérarchie de la vue encore.

Assurez-vous que toute vue qui contient celui-ci a appelé self.addSubview(childView); Cela corrigera le problème "nil".