我正在做下拉刷新的事情。在 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 ;
}
}