Подтвердить что ты не робот

UICollectionView ячейка registerClass в Swift

Прямо сейчас я использую NSClassFromString, но есть ли лучший способ получить AnyClass ! из класса в Swift? Я пытаюсь передать ссылку на мою коллекцию -registerClass:forCellWithReuseIdentifier: метод.

collectionView.registerClass(NSClassFromString("MyCoolViewCell"), forCellWithReuseIdentifier: "MyCoolViewCell")
4b9b3361

Ответ 1

В настоящее время это просто слепая, но образованная догадка, но использование Class.self может быть тем, что вы хотите.

collectionView.registerClass(MyCoolViewCell.self, forCellWithReuseIdentifier: "MyCoolViewCell")

Ответ 2

Если вы используете файл nib, используйте этот код вместо:

    let nib = UINib(nibName: "MyCoolViewCell", bundle: nil)
    collectionView?.register(nib, forCellWithReuseIdentifier: "MyCoolViewCellIdentifier")

Ответ 3

В Swift 3:

self.collectionView.register(CustomCollectionViewCell.self, forCellWithReuseIdentifier: "CustomCollectionViewCellReuseIdentifier")

Ответ 4

NSClassFromString("MyCoolViewCell") может получить ноль.
Следует добавить имя модуля в префиксе:
collectionView.registerClass(NSClassFromString("MyApp.MyCoolViewCell"), forCellWithReuseIdentifier: "MyCoolViewCell")

Если cellClass не является переменной, лучше использовать MyCoolViewCell.self.