Я пытаюсь определить, как установить UITableViewCellStyle
при использовании новых методов в iOS 6 для UITableView
.
Раньше при создании UITableViewCell
я бы изменил перечисление UITableViewCellStyle
для создания различных типов ячеек по умолчанию при вызове initWithStyle:
, но из того, что я могу собрать, это уже не так.
Документация Apple для UITableView
гласит:
Возвращаемое значение: Объект UITableViewCell с ассоциированным идентификатором повторного использования. Этот метод всегда возвращает действительную ячейку.
Обсуждение: По соображениям производительности источник данных табличного представления обычно должен повторно использовать объекты UITableViewCell, когда он назначает ячейки строкам в своем методе tableView: cellForRowAtIndexPath:. В представлении таблицы поддерживается очередь или список объектов UITableViewCell, которые источник данных отмечен для повторного использования. Вызовите этот метод из объекта источника данных, когда его попросят предоставить новую ячейку для представления таблицы. Этот метод деактивирует существующую ячейку, если она доступна, или создает новую, основанную на ранее сохраненном файле класса или файла nib.
Важно. Вы должны зарегистрировать файл класса или nib, используя метод registerNib: forCellReuseIdentifier: или registerClass: forCellReuseIdentifier: перед вызовом этого метода.
Если вы зарегистрировали класс для указанного идентификатора и создать новую ячейку, этот метод инициализирует ячейку, вызывая ее метод initWithStyle: reuseIdentifier:. Для ячеек, основанных на nib, этот метод загружает объект ячейки из предоставленного файла nib. Если существующая ячейка была доступна для повторного использования, этот метод вместо этого вызывает метод prepareForReuse.
Вот как выглядит мой новый cellForRowAtIndexPath
после реализации новых методов:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"cell_identifier";
[tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:cellIdentifier];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];
return cell;
}
Код, который я до сих пор работает нормально, но всегда возвращает стиль по умолчанию. Как я могу изменить это, чтобы я мог создавать ячейки с другими стилями, такими как UITableViewCellStyleDefault
, UITableViewCellStyleValue1
, UITableViewCellStyleValue2
и UITableViewCellStyleSubtitle
?
Я не хочу подкласса UITableViewCell
, я просто хочу изменить тип по умолчанию, как я мог бы сделать до iOS 6. Кажется странным, что Apple предоставит расширенные методы, но с минимальной документацией для поддержки их реализации.
Кто-нибудь справился с этим или столкнулся с подобной проблемой? Я изо всех сил стараюсь найти любую разумную информацию.