Можно ли сделать так, чтобы заголовки разделов табличного представления прокручивались с ячейками в простом табличном представлении? - PullRequest
1 голос
/ 30 августа 2009

В сгруппированном табличном представлении верхние и нижние колонтитулы раздела прокручиваются вместе с ячейками. Однако в простом табличном представлении они фиксируются в верхней и нижней части экрана, пока не будет достигнут следующий раздел.

Есть ли способ переопределить это действие и сделать так, чтобы верхние и нижние колонтитулы прокручивались с ячейками в виде таблицы?

Спасибо!

Ответы [ 3 ]

4 голосов
/ 31 августа 2009

В простом табличном представлении я почти уверен, что вы не можете изменить способ прокрутки заголовков разделов.

НО, вы могли бы получить подобный эффект. Если вы пропустите заголовки разделов и вместо этого поместите заголовок в первую ячейку раздела, он определенно будет прокручиваться так, как вы хотите.

Затем вам нужно проделать некоторую работу, чтобы первая ячейка выглядела как заголовок, а не просто как другая ячейка. Это будет включать функции делегата, такие как:

Чтобы запретить выделение ячейки "заголовка":

- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath;

Чтобы изменить внешний вид ячейки "заголовка":

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
0 голосов
/ 15 марта 2013

Если вы не хотите, чтобы ваши заголовки придерживались вершины, вы должны использовать "normal" UITableViewCells для заголовков.

Итак, вместо этого:

Количество секций: 2
Количество ячеек на секцию: 2

  • Раздел 1
    • Ячейка 1a
  • Ячейка 1b
  • Раздел 2
    • Cell 2a
    • Ячейка 2b

У вас будет это:

Количество секций: default (= 1)
Количество ячеек в секции: 2 заголовка + 2 * 2 ячейки = 6

  • Ячейка 1 (ячейка, которая ранее была похожа на заголовок Section 1)
  • Ячейка 2 (ранее «нормальная ячейка» Cell 1a)
  • Ячейка 3 (ранее «нормальная ячейка» Cell 1b)
  • Ячейка 4 (ячейка, которая ранее была похожа на заголовок Section 2)
  • Ячейка 5 (ранее «нормальная ячейка» Cell 2a)
  • Ячейка 6 (ранее «нормальная ячейка» Cell 2b)

Таким образом, ваши ячейки заголовка не прокручиваются, и в вашем методе tableView:cellForRowAtIndexPath: вам нужно решить, какой «шаблон ячейки» выбрать в зависимости от indexPath.

Обновление:

Другой вариант - изменить стиль табличного представления на сгруппированный. Там заголовки тоже не прилипают к вершине.

0 голосов
/ 30 августа 2009

Да. Я думаю, что заголовки, о которых вы думаете, являются заголовками / индексами разделов, которые остаются над ячейками, пока следующий раздел не заменит текущий.

Заголовки, о которых я думаю, будут прокручиваться сразу после прокрутки экрана, и в самом конце появляется аналогичный нижний колонтитул. Вот код, который я использую для настройки заголовка:

- (void)viewDidLoad {
    [super viewDidLoad];
    highScoreData = [HighScoreData get];
    highScoresTable.tableHeaderView = highScoresTableHeaderView;
}

highScoresTableHeaderView - это простое представление (IBOutlet) с некоторыми метками в моем .xib.

@property (nonatomic, retain) IBOutlet UIView   *highScoresTableHeaderView;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...