作为一个初学者,第一次正式接触动画(还是最简单的那种),让我遇到一个坑,可能对于牛人来说没有什么,但是对于我来说,却是搞了半天才明白是怎么回事。
先说下我的代码:
1>. 第一段代码
[UIView animateWithDuration:1.0f animations:^{ self.scroll.contentOffset = CGPointMake(0, 0); }];
2>. 第二段代码
[UIView animateWithDuration:1.0f animations:^{ [self.scroll setContentOffset:CGPointMake(0, 0) animated:YES]; }];
咋一看,貌似差不多嘛,不就是1>中用点语法,2>中用set方法吗?
其实区别可大着呢,关键就在于set方法中的animated参数。第二段代码中的animated设置为YES,就是表示ContentOffset将从现在的坐标动画变为(0, 0),然而这个动画是有时间的,如果没有记错的话应该是1/4s,那么UIView的动画时长设置1.0f对于ContentOffset的变化就没有什么作用了。
如果把2>中的animated参数设置为NO,则动画效果才会和1>中的动画效果一样。
其他用此种方式设置动画也是一样的,希望我的经历能让和我一样的菜鸟少走些弯路。
时间: 2024-10-29 19:11:18