この問題を解決する方法は、次のように(extends )contentOffsetに従って を調整することです。contentInsetUITableViewControllerDelegateUIScrollViewDelegate
- (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 ヘッダーの高さと一致する場合、指の感触は完璧またはほぼ完璧に見えます。}