Ответ
Да.Уникальный reuseIdentifier
соответствует уникальной очереди повторного использования.
Согласно документации Apple для reuseIdentifier UITableViewCell :
Объект UITableView поддерживает очередь (или список) текущих многократно используемых ячеек, каждая со своим собственным идентификатором повторного использования и делает их доступными для делегата в dequeueReusableCellWithIdentifier: метод
Был предоставлен ответпользователем Matt и источник был косвенно связан в ответе SOF .Последний был опубликован пользователем prekshya basnet .
Разработка вопроса
Соответствует ли каждый reuseIdentifier
уникальной очереди повторного использования?
Другими словами: можно ли вызвать register(_:forCellReuseIdentifier:)
с его реализациями для регистрации перьев или для регистрации классов с различными комбинациями параметров в одном и том же UITableViewпример?зная, что указанные комбинации параметров удовлетворяют следующему:
- идентичное
nib
или cellClass
значение в каждом вызове,в зависимости от используемой реализации для указанного UITableViewController. - Уникальный
identifier
для каждого вызова
Триггер вопроса
Согласно Руководство по программированию Apple: более пристальный взгляд на ячейки табличного представления в Ячейки и производительность табличного представления В самом конце руководства рекомендуется придерживаться следующих рекомендаций:
- Повторное использование ячеек.
- Избегать ретрансляции контента.
- Использовать непрозрачные подпредставления.
- Для того, чтобы удовлетворить вышеупомянутые пункты руководства1. и 2.
- Для удовлетворения моего требования, чтобы иметь две ячейки одного типа, но они были расположены прогамматически по-разному, даже если они являются одним и тем же подклассом XIB и UITableView.
Затем мне нужно использовать две отдельные строки reuseIdentifier
для одного и того же nib
объекта.
Я уже могу различать два nib
объекта, которые расположеныиначе, в UITableViewDelegate
или UITableViewDataSource
с использованием контрольного флага / enum в объекте, находящемся в моей коллекции dataSource
backstore.Этот объект, конечно, соответствует indexPath
, указанному в delegate
/ dataSource
.
Предыдущая работа вопроса
Я искал в Интернете несколько поисковых систем на нескольких сайтах, включая Stackoverflow .Я уже проверил следующие вопросы: что делает регистрация вызова для повторного использования соты и зарегистрированных классов для идентификаторов повторного использования и многие другие, которые были слишком далеки, чтобы даже упоминать.