2017-10-11 7 views
0

J'ai un problème avec un en-tête collant dans ma vue de collection ne fonctionne pas dans iOS 10. J'ai un collectionView qui a un en-tête dans la deuxième section seulement - mis en œuvre en définissant la taille dans le première section comme CGSize.zero et la taille dans la deuxième section de la taille appropriée:UICollectionView collant en-tête ne fonctionne pas iOS 10

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize { 
     if section == 0 { 
      return CGSize.zero 
     } 
     return CGSize(width: collectionView.width, height: 80.0) 

}

Je fais l'en-tête collant collant avec ces lignes viewDidLoad:

theCollectionView.delegate = self 
theCollectionView.dataSource = self 
if let flowLayout = theCollectionView.collectionViewLayout as? UICollectionViewFlowLayout { 
    flowLayout.sectionHeadersPinToVisibleBounds = true 
} 

Tout fonctionne très bien dans iOS 11. Lorsque vous faites défiler la vue de la collection, l'en-tête reste en haut.

Toutefois, dans iOS 10, cela ne fonctionne pas. L'en-tête colle - mais pas en haut de l'écran - il colle à son emplacement initial et les cellules de vue de collection dans la deuxième section peuvent être vues défiler dessous. Il y a un écart en haut de l'écran. J'ai joint deux captures d'écran illustrant mon problème. Toute aide serait très appréciée!

Initial View

Sticky Header does not scroll to top

+0

Mise à jour - Cela a quelque chose à voir avec mon contrôleur de vue étant intégré dans un UINavigationController .... restez à l'écoute pour le correctif que j'espère trouver bientôt. –

Répondre

0

fixe en changeant la contrainte supérieure de mise en page automatique dans mon story-board. Il a été défini du haut de la vue de la collection au haut de la zone de sécurité. Changement de la vue de la collection vers le haut de la page Superview.