私がこの問題を解決した方法contentOffset
はcontentInset
、次のようにUITableViewControllerDelegate
(extends 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ヘッダーの高さに一致する場合、指の感触は完璧またはほぼ完璧のようです。}