gpt4 book ai didi

objective-c - 为什么 Core Animation 方法是类方法而不是实例方法?

转载 作者:行者123 更新时间:2023-11-29 05:00:37 27 4
gpt4 key购买 nike

在Core Animation框架中,为什么beginAnimations:context:和commitAnimations方法是UIView的类方法?
为什么不成为实例方法,所以我们编码:

[widget beginAnimations:@""];
[widget commitAnimations];

代替:

[UIView beginAnimations:@"" context:widget];
[UIView commitAnimations];

最佳答案

beginAnimations:context: 类方法开始动画“ block ”:

[UIView beginAnimations:@"" context:nil];
view1.frame.x = 10;
view2.opacity = 0.5;
[UIView commitAnimations];

使用上面的代码片段,view1view2 将为该 block 内的更改添加动画效果。

context 属性不是您想要设置动画的 View ,只是可以通过委托(delegate)方法访问的信息。

context

Custom data that you want to associate with this set of animations. information that is passed to the animation delegate messages—the selectors set using the setAnimationWillStartSelector: and setAnimationDidStopSelector: methods.

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIView_Class/UIView/UIView.html

顺便说一句,在 iOS4 及更高版本中不鼓励这种执行动画的方式。如果您需要定位较旧的 iOS 版本,请检查该标志:

#if NS_BLOCKS_AVAILABLE
// iOS4 and above
#else
// iOS3
#endif

关于objective-c - 为什么 Core Animation 方法是类方法而不是实例方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7061063/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com