8

J'ai donc un UICollectionView que je veux utiliser pour afficher plusieurs UICollectionViewCells et différents en-têtes en fonction de l'état de l'utilisateur. Le problème est que je n'arrive pas à m'enregistrer plusieurs vues UICollectionResuableView (en-tête) dans le storyboard. Si j'essaie d'en enregistrer un comme pied de page et que je l'utilise comme en-tête, l'application plante. Je ne vois pas non plus dans le storyboard de déclarer le nombre de sections, ce qui soulagerait le problème. Pour l'instant, je dois utiliser plusieurs UICollectionViews et masquer/afficher la collection que je veux afficher en fonction de l'en-tête dont j'ai besoin. Y a-t-il une meilleure façon de le faire, ou un moyen d'enregistrer plusieurs vues d'en-tête dans le même UICollectionView dans le storyboard?Enregistrer une vue supplémentaire en-tête multiple dans le même UICollectionView à travers les storyboards

Répondre

11

Vous ne pouvez pas enregistrer plus d'un en-tête dans un UICollectionView dans un storyboard, mais vous pouvez en enregistrer un nombre arbitraire dans le code. Vous devez cependant créer autant d'en-têtes que vous le souhaitez dans les fichiers nib (une seule pointe par en-tête, avec l'en-tête comme objet de niveau supérieur) et les enregistrer dans votre instance de vue de collection au viewDidLoad. Vous le feriez avec le registerNib:forSupplementaryViewOfKind:withReuseIdentifier: method.

+1

J'avais essayé la méthode registerClass: beaucoup plus propre. Serait toujours agréable d'être en mesure de définir cette valeur sur la collectionview à l'intérieur du storyboard si. –

+0

La méthode de registre que vous utilisez dépend si vous souhaitez implémenter votre interface utilisateur dans un NIB ou dans du code, je suppose. Je me trouve généralement en utilisant l'approche NIB. –

+4

Quel exercice ridicule dans la frustration qui était. Je suppose que j'aurais dû le mettre dans une plume distincte pour commencer. – TylerJames