iOS-浅谈UIScrollView

来源:互联网 发布:淘宝信用度怎么看 编辑:程序博客网 时间:2024/06/05 12:21

问题提出

以下两个方法哪个先被调用?

// 松手时已经静止,只会调用scrollViewDidEndDragging- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{    if (decelerate == NO) { // scrollView已经完全静止    }}// 松手时还在运动, 先调用scrollViewDidEndDragging,在调用scrollViewDidEndDecelerating- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{    // scrollView已经完全静止}

//1.区别是在与拖动UIScrollView有没有对UIScrollView进行松手滑动一段距离。

<情况1>.如果轻轻地拖动UIScrollView,UIScrollView松手就停止运动。

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;//这个方法是不会被系统调用

相反,系统会调用这个方法

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;//会被系统调用

,而且decelerate == YES.

<情况2>如果用力地拖动UIScrollView,令到scrollView在视图上滚动一大段距离。

//结果是:这两个方法都会被调用- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;//分析:调用的顺序如何呢?实践所得:先调用:decelerate == YES- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;当scrollView完全停止时,再调用- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;