Прокрутка заголовка раздела UITableView - PullRequest
2 голосов
/ 21 марта 2012

Я подписался на этот пост , чтобы сделать анимированный заголовок моего раздела при просмотре таблицы.Однако при прокрутке вверх, заголовок не возвращается.Когда-либо.Учитывая, что я точно следовал решению (и я не устанавливаю contentInset где-либо еще), я весьма озадачен.Может кто-то указать мне верное направление?Вот мой код:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
  CGPoint p = scrollView.contentOffset;

  CGFloat height = [self tableView:self.agendaDetailTable heightForHeaderInSection:0];

  if (p.y <= height && p.y > 0) {
    self.agendaDetailTable.contentInset = UIEdgeInsetsMake(-p.y, 0, 0, 0);
  } else if (p.y >= height) {
    self.agendaDetailTable.contentInset = UIEdgeInsetsMake(-height, 0, 0, 0);
  }
}

Ответы [ 2 ]

4 голосов
/ 21 марта 2012

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

1 голос
/ 11 августа 2013

Решение Джейкоба работает хорошо. Одна из проблем заключается в том, что содержимое прокручивается на один пиксель. У меня есть заголовок с черной рамкой, и после прокрутки я вижу проблему, а затем возвращаюсь наверх. Изменяя p.y> 0 на p.y> = 0, мой заголовок при прокрутке до нуля восстанавливается правильно.

/* to fix floating headers */
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    CGPoint p = scrollView.contentOffset;

    CGFloat height = (float) DASHBOARD_SUMMARY_PANEL_HEADER_HEIGHT;

    if (p.y <= height && p.y >= 0) {
        self.SummaryPanelTableView.contentInset = UIEdgeInsetsMake(-p.y, 0, 0, 0);
    } else if (p.y >= height) {
        self.SummaryPanelTableView.contentInset = UIEdgeInsetsMake(-height, 0, 0, 0);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...