我希望在scrollview
完成滚动时执行一些操作,因此我在scrollViewDidEndScrollingAnimation
委托方法中编写了该acton。当rect不可见时,它正常工作,scrollview滚动到新的rect。但是当rect已经可见时scrollViewDidEndScrollingAnimation
方法将不会被调用,因此scrollViewDidEndScrollingAnimation
内写的方法将不会被调用。但是我想调用那个动作,当scrollview完成滚动时,是否有人知道如何调用该方法?
提前致谢!
答案 0 :(得分:3)
我认为这个会吸引一些人。实际发生的情况是scrollViewDidEndScrollingAnimation
仅在您明确调用setContentOffset:animated:
或scrollRectToVisible:animated:
方法时才会被调用。
正如UIScrollViewDelegate Protocol Reference所述:
<强>讨论强>
滚动视图在其结尾处调用此方法 setContentOffset的实现:animated:和 scrollRectToVisible:animated:methods,但仅限于动画 请求的
那该怎么办?好吧,我们不要忘记通常在滚动视图中对内容数据的偏移不是动画的。相反,它是不断更新contentOffset
值的结果。因此,您可以使用contentOffset
委托方法根据特定scrollViewDidScroll:
触发您的方法。
或者,如果要在每个滚动手势之后完成某些操作 - 特别是在私人UIScrollViewPanGestureRecognizer
之后 - 那么您可以在scrollViewDidEndDecelerating:
中执行此操作:
讨论
滚动视图在滚动时调用此方法 运动停止 。 UIScrollView的减速属性 控制减速。
答案 1 :(得分:1)
实现 scrollViewDidEndDecelerating:
和 scrollViewDidEndDragging:
- (void)scrollViewDidEndDecelerating:(UIScrollView *)滚动视图&#XA; {&#XA; //用户在滚动时抬起手指&#xA; [self doPostScrollAction];&#xA;}&#xA;&#xA;(void)scrollViewDidEndDragging :( UIScrollView *)scrollView willDecelerate:(BOOL)减速&#xA; {&#xA;如果(减速!)&#XA; {&#XA; //用户在停止滚动后抬起手指&#xA; [self doPostScrollAction];&#xA; }&#XA;}&#XA; 代码>
&#XA;