Я делаю эту вещь для обновления. В scrollViewDidEndDecelerating я проверяю, находится ли смещение за определенной точкой, а в scrollViewDidEndDragging я устанавливаю contentInset, чтобы сохранить раскрывающийся раздел видимым.
Однако это приводит к мерцанию, возможно, из-за сброса содержимого содержимого во время анимации прокрутки. Я думал, что смогу предотвратить это, установив targetContentOffset в scrollViewWillEndDragging, но, похоже, это не сработает.
- (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 ;
}
}