首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >未调用scrollViewDidEndScrollingAnimation

未调用scrollViewDidEndScrollingAnimation
EN

Stack Overflow用户
提问于 2013-01-21 18:23:57
回答 2查看 2.7K关注 0票数 2

我想在scrollview完成滚动时执行一些操作,所以我在scrollViewDidEndScrollingAnimation委托方法中编写了acton。当rect不可见并且滚动视图滚动到新的rect时,它工作得很好。但是,当scrollViewDidEndScrollingAnimation已经可见时,将不会调用scrollViewDidEndScrollingAnimation方法,因此不会调用在rect中编写的方法。但是我想调用这个动作,有谁知道如何在scrollview完成滚动时调用这个方法吗?

提前感谢!

EN

回答 2

Stack Overflow用户

发布于 2013-05-07 01:10:06

我想这一次抓到了几个人。实际发生的情况是,只有在显式调用setContentOffset:animated:scrollRectToVisible:animated:方法时才会调用scrollViewDidEndScrollingAnimation

正如UIScrollViewDelegate Protocol Reference所说的:

讨论

scroll视图在setContentOffset:animated:和scrollRectToVisible:animated:方法的实现结束时调用此方法,但仅当请求动画时调用。

那该怎么办呢?好吧,我们不要忘记,滚动视图中内容数据的偏移通常不是动画。相反,它是不断更新contentOffset值的结果。因此,您可以使用scrollViewDidScroll:委托方法基于特定的contentOffset触发您的方法。

或者,如果需要在每个滚动手势之后执行此操作-特别是在私有UIScrollViewPanGestureRecognizer之后-则可以在scrollViewDidEndDecelerating:中执行此操作

讨论

当滚动移动停止时,scroll视图调用此方法。UIScrollView的减速属性控制减速。

票数 5
EN

Stack Overflow用户

发布于 2016-11-21 22:45:50

同时实现scrollViewDidEndDecelerating:scrollViewDidEndDragging:

代码语言:javascript
运行
复制
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    // User lifted finger while scrolling
    [self doPostScrollAction];
}

-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
    if(!decelerate)
    {
        // User lifted finger after stopping scrolling
        [self doPostScrollAction];
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14436582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档