J'essaie d'ajouter l'en-tête à collectionView
en utilisant le fichier xib personnalisé. J'ai créé le fichier xib
avec la classe implémentant UICollectionReusableView
. Dans collectionViewController
J'enregistré le fichier xib
comme ceci:ajouter un en-tête personnalisé à la vue de la collection swift
self.collectionView.register(UINib(nibName: HCollectionReusableView.nibName, bundle: nil), forSupplementaryViewOfKind: UICollectionElementKindSectionHeader, withReuseIdentifier: HCollectionReusableView.reuseIdentifier)
et après que viewForSupplementaryElementOfKind
j'ai fait
let header = collectionView.dequeueReusableSupplementaryView(ofKind: UICollectionElementKindSectionHeader, withReuseIdentifier: HCollectionReusableView.reuseIdentifier, for: indexPath) as! HCollectionReusableView
et pour le dimensionnement
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize {
return CGSize(width: 100, height: 50)
}
J'obtiens l'erreur: Impossible de charger NIB en bundle. un code manquant?
classe HCollectionReusableView:
class HCollectionReusableView: UICollectionReusableView {
static var nibName : String
{
get { return "headerNIB"}
}
static var reuseIdentifier: String
{
get { return "headerCell"}
}
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
}
Je pense que je dois changer l'enregistrement de xib en classe, ici l'erreur maintenant: impossible de déquiler une vue de type: UICollectionElementKindSectionHeader avec l'identifiant HCollectionReusableView - doit enregistrer une plume ou une classe pour le identifier ou connecter une cellule prototype dans un storyboard (null) –
vous obtenez l'erreur depuis les identificateurs lorsque vous enregistrez l'élément et lorsque vous vous enregistrez ne correspondent pas ... essayez de coder en dur l'identifiant comme ceci lorsque vous enregistrez la cellule: 'self.collectionView.register (UINib (nibName: HCollectionReusableView.nibName, bundle: nil), pourSupplementaryViewOfKind: UICollectionElementKindSectionHeader, withReuseIdentifier:" HCollectionReusableView ") ' cela devrait fonctionner ... alors vous pouvez simplement ajuster le code pour répondre à vos besoins – John
vous n'enregistrerez la classe que si vous n'utilisez aucun Xib ou Storyboard – John