Класс регистрации ячеек UICollectionView в Swift
прямо сейчас я использую NSClassFromString, но есть ли лучший способ получить AnyClass! из класса в Swift? Я пытаюсь передать ссылку на представление моей коллекции-registerClass: forCellWithReuseIdentifier: метод.
collectionView.registerClass(NSClassFromString("MyCoolViewCell"), forCellWithReuseIdentifier: "MyCoolViewCell")
4 ответа:
в настоящее время это просто слепая, но образованная догадка, но с помощью
Class.self
может быть то, что вы хотите.collectionView.registerClass(MyCoolViewCell.self, forCellWithReuseIdentifier: "MyCoolViewCell")
в случае, если вы используете файл nib, используйте этот код:
let nib = UINib(nibName: "MyCoolViewCell", bundle: nil) collectionView?.register(nib, forCellWithReuseIdentifier: "MyCoolViewCellIdentifier")
В Swift 3:
self.collectionView.register(CustomCollectionViewCell.self, forCellWithReuseIdentifier: "CustomCollectionViewCellReuseIdentifier")
NSClassFromString("MyCoolViewCell")
возможно, Вам и не пропустит.
Следует добавить имя модуля в префикс:collectionView.registerClass(NSClassFromString("MyApp.MyCoolViewCell"), forCellWithReuseIdentifier: "MyCoolViewCell")
Если cellClass не переменная, используйте
MyCoolViewCell.self
- это лучший выбор.