一个简单的问题:
这是一个老式时尚动画的示例:
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[base setTransform:rotate];
[base setCenter:newCenter];
[UIView commitAnimations];
这可以写成
[UIView animateWithDuration:0.5 animations:^{
[base setTransform:rotate];
[base setCenter:newCenter];
}];
使用这种新形式重写动画有什么好处吗?
应该会有一些收获,否则苹果将无法实现这一新功能。
你们怎么说
最佳答案
苹果所做的改变不是为了性能,而是因为块是表达这种事情的一种更简便的方法。以前,您必须使用选择器在动画结束时触发等。
所以-为什么要使用animateWithDuration
:因为块节省了时间,使代码更整洁,并且通常非常有用。
以及为什么使用beginAnimation
:因为您要支持4.0之前的iOS版本,而该代码不可用。 Apple仍需要提供这两种方法,因为它们需要保持向后兼容-但文档强烈建议您在可用且适当的地方使用方法的块版本。
关于iphone - iPhone-使用animateWithDuration代替UIView beginAnimations有任何优势吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5438032/