iphone - iPhone-使用animateWithDuration代替UIView beginAnimations有任何优势吗?

标签 iphone ios objective-c-blocks

一个简单的问题:

这是一个老式时尚动画的示例:

[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/

相关文章:

ios - 清理^ block

ios - 缩放 super View 时如何防止按钮调整大小?

jQuery mobile - 带和不带视网膜显示的图像尺寸

ios - 初始化子类不起作用

ios - 如何在iOS中使用AVPlayer达到4.0的播放速率?

ios - 如何在 Swift 中循环访问 UITableView 中的数据

objective-c - 来自被调用方法的 block 和自身

Swift 中的 Objective-C block - 变量丢失?

ios - 按钮上的 UITableViewCell 单击使用核心数据更新数据库属性值

iphone - MPMoviePlayerController 从流视频中获取缩略图?