UIScrollview 动画,setContentOffset:与setContentOffset:animate:异同点

一、
1.1使用animated参数,可以获得正确的UIScrollViewDelegate的回调;而使用UIView动画则不能。
scrollViewDidScroll:
scrollViewDidEndScrollingAnimation:

1.2不使用animated参数,只可以回调scrollViewDidScroll:

二、
2.1使用animated参数,可以获取到动画过程中contentOffset的值。
eg:
[scrollView setContentOffset:CGPointMake(0, 100) animated:YES];
NSLog(@"%f", scrollView.contentOffset.y);//输出:0.000000
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.1 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
NSLog(@"%f", scrollView.contentOffset.y);//输出:25.500000,每次输出不保证一致
});
2.2不使用animated参数,使用UIView动画后,无论在什么时候查询contentOffset的值,得到的都是动画的最终值。
[UIView animateWithDuration:0.25
animations:^{
[scrollView setContentOffset:CGPointMake(0, 100)];
}];
NSLog(@"%f", scrollView.contentOffset.y);//输出:100.000000

详情见:http://ios.jobbole.com/85224/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容