Я намагаюся зрозуміти, як встановити UITableViewCellStyle
при використанні нових методів в iOS 6 для UITableView
.
Раніше, створюючи UITableViewCell
я, я міняв би UITableViewCellStyle
перелік, щоб створювати різні типи клітинок за замовчуванням при виклику, initWithStyle:
але з того, що я можу зібрати, це вже не так.
Документація Apple для UITableView
держав:
Повернене значення : об’єкт UITableViewCell із пов’язаним ідентифікатором повторного використання. Цей метод завжди повертає дійсну комірку.
Обговорення : З міркувань продуктивності джерело даних подання таблиці має, як правило, повторно використовувати об'єкти UITableViewCell, коли воно призначає комірки рядкам у своєму методі tableView: cellForRowAtIndexPath:. У поданні таблиці зберігається черга або список об’єктів UITableViewCell, які джерело даних позначило для повторного використання. Викличте цей метод із об’єкта джерела даних, коли вам буде запропоновано надати нову комірку для подання таблиці. Цей метод дезактивує існуючу комірку, якщо така є, або створює нову на основі файлу класу чи файлу, який ви раніше зареєстрували.
Важливо : Перед викликом цього методу потрібно зареєструвати файл класу чи файл nib, використовуючи метод registerNib: forCellReuseIdentifier: або registerClass: forCellReuseIdentifier:.
Якщо ви зареєстрували клас для вказаного ідентифікатора і потрібно створити нову комірку, цей метод ініціалізує комірку, викликаючи її метод initWithStyle: reuseIdentifier:. Для комірок на основі nib, цей метод завантажує об’єкт комірки із наданого файлу nib. Якщо наявна комірка була доступна для повторного використання, цей метод замість цього викликає метод клітинки PrepaForReuse.
Ось як 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
щоб отримати інші стилі за замовчуванням - це проблема, оскільки вона просто створює непотрібні файли. Дякую за ваш коментар та підтвердження моїх підозр.