gpt4 book ai didi

ios - UITableView 拉动刷新导致闪烁。如何预防?

转载 作者:可可西里 更新时间:2023-11-01 04:14:40 25 4
gpt4 key购买 nike

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

最佳答案

如果您完全更改分配给 UITableView 的框架(在滚动期间或其他情况下),将导致 contentInset 重置为默认值 (0,0,0,0)。有一些状态检查我的,但基本上这是我为我所做的...

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView
willDecelerate:(BOOL)decelerate {
if (scrollView.contentOffset.y < -kRefreshDeltaY) {
animation = ^{
[self setContentInset:UIEdgeInsetsMake(kRefreshDeltaY,
0, 0, 0)];
};

[UIView animateWithDuration:0.3
delay:0
options:UIViewAnimationOptionAllowUserInteraction
animations:animation
completion:completion];
} // if
}

只要我没有布置 subview 或更改 UITableView 的框架,它对我来说就很好。

关于ios - UITableView 拉动刷新导致闪烁。如何预防?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9459038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com