Я решил эту проблему, настроив contentOffset
в соответствии с contentInset
в UITableViewControllerDelegate
(расширяет UIScrollViewDelegate
) следующим образом:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGFloat sectionHeaderHeight = 40;
if (scrollView.contentOffset.y<=sectionHeaderHeight&&scrollView.contentOffset.y>=0) {
scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);
} else if (scrollView.contentOffset.y>=sectionHeaderHeight) {
scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0);
}
}
Единственная проблема здесь в том, что он немного теряет отскок при прокрутке вверх.
{ПРИМЕЧАНИЕ: «40» должно быть точной высотой ВАШЕГО заголовка секции 0. Если вы используете число, которое больше, чем высота заголовка раздела 0, вы увидите, что это влияет на ощущение пальца (попробуйте как «1000», и вы увидите, что поведение отскока вверху странно). если число соответствует высоте заголовка вашего раздела 0, ощущение пальца кажется либо идеальным, либо почти идеальным.}