私はそのプルダウンしてリフレッシュすることをやっています。scrollViewDidEndDecelerating では、オフセットが特定のポイントを超えているかどうかを確認し、scrollViewDidEndDragging では、プルダウン セクションが表示されるように contentInset を設定します。
ただし、アニメーションのスクロール中に contentInset がリセットされるため、ちらつきが発生します。scrollViewWillEndDraggingでtargetContentOffsetを設定することでこれを防ぐことができるかもしれないと思っていましたが、うまくいかないようです。
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
if (scrollView.contentOffset.y < -kRefreshViewDelta)
{
self.tableView.contentInset = UIEdgeInsetsMake(kRefreshViewHeight, 0.0f, 0.0f, 0.0f);
}
}
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
{
if (scrollView.contentOffset.y < -kRefreshViewDelta)
{
targetContentOffset->y = kRefreshViewHeight ;
}
}