Как определить, будет ли ячейка, возвращаемая dequeueReusableCellWithIdentifier, повторно использоваться в iOS 6?

Я добавляю элементы (например, распознаватели жестов, subviews) к ячейкам в cellForRowIndexPath. Я не хочу добавлять их, если ячейка повторно используется (предположительно), так есть ли способ легко сказать, является ли ячейка новой или используется повторно?

Прототип ячейки определен в раскадровке.

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

Я мог бы использовать подход до iOS 6, но, конечно, есть лучший способ сделать что-то настолько простое?

Я не мог найти что-либо в Интернете, так что боюсь, что меня что-то смутит, но найти его сложно.

2 Solutions collect form web for “Как определить, будет ли ячейка, возвращаемая dequeueReusableCellWithIdentifier, повторно использоваться в iOS 6?”

Самый простой способ справиться с этим – проверить наличие вещей, которые вам нужно добавить.

Итак, предположим, что ваша ячейка нуждается в подсмотре с тегом 42, если она еще не присутствует.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"]; UIView *subview = [cell viewWithTag:42]; if (!subview) { ... Set up the new cell } else { ... Reuse the cell } return cell; } 

Вероятно, это избыток по сравнению с использованием подхода pre-iOS6 (без зарегистрированного класса), но если вы действительно хотите придерживаться этого, вы можете использовать связанные объекты .

 #import <objc/objc-runtime.h> static char cellCustomized; ... -(UITableViewCell *)getCell { UITableViewCell *cell = [tableView dequeueReusableCellForIdentifier:myCell]; if(!objc_getAssociatedProperty(cell, &cellCustomized)) { [self setupCell:cell]; objc_setAssociatedProperty(cell, &cellCustomized, @YES, OBJC_ASSOCIATION_RETAIN_NONATOMIC); } return cell; } ... 

(не испытано)

  • iOS8 UITableView scolling возвращается при прокрутке вверх
  • Как использовать UISearchBar и UISearchDisplayController
  • UITableViewCell textLabel не обновляется до тех пор, пока не будет прокрутка или не произойдет при использовании GCD
  • Как реализовать UISearchController в UITableView - SWIFT
  • Конкретный / полный пример использования NSPrivateQueueConcurrencyType?
  • Ярлык таблицы просмотра не выравнивается по центру, если число строк не равно 1
  • изменить UITableViewCell FBFriendPickerViewController
  • UITableView в раскадровке не обновляет размер содержимого при вращении
  • Как получить цвет разделителя ячеек по умолчанию? Также, как установить цвет разделителя на ячейку?
  • UITableView с UIRefreshControl в полупрозрачной строке состояния
  • Галерея хороших дизайнов UITableView
  • Interesting Posts

    Изменение шрифта шрифта UITextField

    Что такое Non Public API?

    Использовать рамки selenium-objective-c

    iOS 7 – Не удалось создать экземпляр контроллера по умолчанию

    Как я могу распределить предварительно скомпилированную динамическую инфраструктуру iOS?

    Исключить файлы и каталоги из XCode 4 PhoneGap Build

    Можем ли мы использовать PJSIP / Siphon в нашем приложении SIP Voip

    Добавление слоя камеры на изображения неправильной формы IOS

    Как рассчитать скорость нашего автомобиля с помощью iphone

    Лучший заменитель, преемник или альтернатива для ASIHTTP для очереди загрузки

    Скрытие ярлыка, когда телефон находится в ландшафтном режиме

    Photos.framework throws <Ошибка>: ImageIO: ошибка PNG zlib, но все еще обеспечивает UIImage

    PerformSegueWithIdentifier не работает

    Как правильно отклонить UINavigationController, который представлен как модальный?

    Прозрачный UIImageView перед всем пользовательским интерфейсом

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.