iOS-浅谈UIScrollView

87 篇文章 1 订阅

问题提出

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

// 松手时已经静止,只会调用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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值