Установка .reuseIdentifier для UICollectionViewCell

У меня есть определенныйUICollectionViewCell что я хочувоплощать себяи добавить кUICollectionView, Для того, чтобы это работало,UICollectionViewCell Экземпляр нуждается в своем.reuseIdentifier свойство, которое будет установлено.

Обычно класс или Nib, описывающий ячейку, регистрируется в представлении коллекции, а представление коллекции создает в ячейке свою.reuseIdentifier уже установлено, с помощью этих методов:

- registerClass:forCellWithReuseIdentifier:
- registerNib:forCellWithReuseIdentifier:

Однако, поскольку я создаю эту ячейку за пределами представления коллекции, они не применяются.

Когда я сам создаю ячейку, кажется, нет способа установить ее.reuseIdentifier (потому что это свойство только для чтения, и нетinit... методы, которые его инициализируют).

когда.reuseIdentifier не установлен, тоUICollectionView выдает исключение при добавлении ячейки. Это поведение отличается отUITableViewгде идентификаторы повторного использования были необязательными.

Простой обходной путь для установки ячейки представления коллекцииИдентификатор повторного использования должен включать его в.xib подать и использоватьIdentifier затем создайте экземпляр ячейки с

[NSBundle.mainBundle loadNibNamed:@"MyCellName" owner:self options:nil][0];

Я могу затем передать вышеупомянутыйUICollectionViewCell и все работает отлично.

... но это кажется довольно глупым и произвольным обручем, чтобы прыгать. Есть ли другой способ получить это свойство на экземпляре ячейки без.xib-обертка объезд?

Обновление: Apple 'В документации сказано:

Чтобы упростить процесс создания вашего кода, представление коллекции требует, чтобы вы всегда удаляли представления, а не создавали их явно в своем коде.

... что на самом деле не так, потому что это не такэто требуется (то есть, внешние экземпляры работают нормально, пока их идентификатор установленкак-тонапример, если загружен из.xib) и это тоже неупростить процесс создания моего кода в моем конкретном случае использования (скорее требуется дополнительный файл; далее было бы грязно требовать, чтобы представление коллекции создавало эти несколько сложных одноразовых элементов).

Но вышесказанное, по-видимому, подразумевает, что ответ на вопрос «нет»:намеренносложно" создать пригодную для использования ячейку, за исключением того, что представление коллекции удаляет ее из очереди.

Ответы на вопрос(2)

Ваш ответ на вопрос