Affronto questo problema, perché nel viewDidLoad()
ho registrato la mia cella con classe UICollectionViewCell. Nel mio cellForItemAtIndexPath
utilizzato CustomSubcalssCollectionViewCell per dequeueReusableCell.
assicurarsi registerClass e dequeueReusableCell sono la stessa classe di risolvere il problema
self.registerClass(SomeUICollectionCellClass.self, forCellWithReuseIdentifier: reuseIdentifier)
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! SomeUICollectionCellClass
fonte
2015-12-17 12:08:12
Ciò ha causato un errore per me e, in seguito all'eliminazione, la vista ora viene caricata. Tuttavia, ora UICollectionView sembra terribile. Credo che cancellare quella riga di codice significhi che tutti i miei vincoli di layout che avrei impostato nella mia Storyboard, ora sono spazzatura e devono essere aggiunti programmaticamente? –
Penso che il problema dei vincoli abbia un'altra causa. Da Apple doc: "Prima di chiamare il dequeueReusableCellWithReuseIdentifier: forIndexPath: metodo della vista di raccolta, è necessario utilizzare questo metodo o registerNib: forCellWithReuseIdentifier: metodo per indicare alla vista dell'insieme come creare una nuova cella del tipo specificato." La mia esperienza è che, se la cella è definita in uno storyboard, registerNib sembra funzionare automaticamente. – coco
Nota generale: non è necessario registrare classi di celle quando si utilizzano prototipi di Storyboard. Se ti registri, sostituirà il tuo prototipo. – Wizkid