区别scrollViewDidEndDragging和scrollViewDidEndDecelerating

本文详细解析了UIScrollView中两种不同滑动结束代理方法的工作原理及应用场景。通过具体实现代码,对比了scrollViewDidEndDragging与scrollViewDidEndDecelerating的区别,并说明了它们触发的时机,帮助开发者更好地理解并运用这些方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

- (void)setContentOffset
{
    float index = floor((_contentScrollView.contentOffset.x - 35) / 70 + 1);
    
    NSLog(@"index : %.2f", index);
    [_contentScrollView setContentOffset:CGPointMake(70 * index, 0) animated:YES];//跳转到你指定内容的坐标
}

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
    if (!decelerate) {
        [self setContentOffset];
    }

}


- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
//    NSLog(@"scrollViewDidEndDecelerating");
    [self setContentOffset];
}


第一个DidEndDragging    停止拖拽的时候开始执行

第二个:DidEndDecelerating   减速停止的时候开始执行

也就是说  它俩执行的时间不一样  scrollview  先是执行 停止拖住的代理   然后在执行减速停止的代理  

正常 你快速的拖拽,它两个函数都是会响应的。但是如果你是慢慢的拖动,不存在加速度的时候,就只会调上面的那个函数,而不会调下面那个!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值