Я пытаюсь понять, как установить UITableViewCellStyle
при использовании новых методов в iOS 6 для UITableView
.
Раньше при создании UITableViewCell
я менял UITableViewCellStyle
перечисление для создания различных типов ячеек по умолчанию при вызове, initWithStyle:
но из того, что я могу собрать, это уже не так.
В документации Apple UITableView
указано:
Возвращаемое значение : объект UITableViewCell со связанным идентификатором повторного использования. Этот метод всегда возвращает действительную ячейку.
Обсуждение : По соображениям производительности источник данных табличного представления обычно должен повторно использовать объекты UITableViewCell, когда он назначает ячейки строкам в своем методе tableView: cellForRowAtIndexPath:. Табличное представление поддерживает очередь или список объектов UITableViewCell, которые источник данных пометил для повторного использования. Вызовите этот метод из объекта источника данных, когда вас попросят предоставить новую ячейку для представления таблицы. Этот метод удаляет существующую ячейку из очереди, если она доступна, или создает новую на основе ранее зарегистрированного вами класса или файла пера.
Важно : вы должны зарегистрировать класс или файл пера с помощью метода registerNib: forCellReuseIdentifier: или registerClass: forCellReuseIdentifier: перед вызовом этого метода.
Если вы зарегистрировали класс для указанного идентификатора и должна быть создана новая ячейка, этот метод инициализирует ячейку, вызывая ее метод initWithStyle: reuseIdentifier:. Для ячеек на основе пера этот метод загружает объект ячейки из предоставленного файла пера. Если существующая ячейка была доступна для повторного использования, этот метод вместо этого вызывает метод 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 предоставила расширенные методы, но с минимальной документацией для поддержки их реализации.
Кто-нибудь осилил такое, или столкнулся с подобной проблемой? Я изо всех сил пытаюсь найти хоть какую-то разумную информацию.
UITableViewCell
для получения других стилей по умолчанию является проблемой, поскольку это просто создает ненужные файлы. Спасибо за комментарий и подтверждение моих подозрений.