- (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];
}
{
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 先是执行 停止拖住的代理 然后在执行减速停止的代理
正常 你快速的拖拽,它两个函数都是会响应的。但是如果你是慢慢的拖动,不存在加速度的时候,就只会调上面的那个函数,而不会调下面那个!