在Core Animation框架中,为什么方法beginAnimations:context:和commitAnimations是UIView的类方法?
为什么不成为实例方法,所以我们编码:
[widget beginAnimations:@""];
[widget commitAnimations];
而不是:
[UIView beginAnimations:@"" context:widget];
[UIView commitAnimations];
答案 0 :(得分:1)
beginAnimations:context:
类方法开始动画“块”:
[UIView beginAnimations:@"" context:nil];
view1.frame.x = 10;
view2.opacity = 0.5;
[UIView commitAnimations];
使用上面的代码段,view1
和view2
将为该区块内的更改设置动画。
context
属性不是您想要设置动画的视图,只是可以通过委托方法访问的信息。
上下文
要与此组关联的自定义数据 动画。传递给动画委托的信息 消息 - 使用setAnimationWillStartSelector设置的选择器: 和setAnimationDidStopSelector:方法。
作为旁注,在iOS4及更高版本中不鼓励使用这种执行动画的方式。如果您需要定位较旧的iOS版本,请检查标记:
#if NS_BLOCKS_AVAILABLE
// iOS4 and above
#else
// iOS3
#endif