动态对象可以是UIImageView吗



我有一个行为为UIPushBehaviourUIDynamicAnimator。我知道UIView对象可以与initWithReferenceView一起成为动态对象。但是一个动态对象可能是CCD_ 5吗。如果是,怎么做?

(我已经阅读了苹果开发人员的文档,我不能真正理解UIDynamicAnimator的概念,所以如果这很愚蠢,请原谅我)

任何东西都不会"变成动态对象"。这不是思考的方式。动态动画师有行为。行为包含项。视图可以是一个项目。这意味着UIDynamicAnimator可以使UIImageView动画化。该视图不知道它正在设置动画。它只是反复调用setCenter:(正如@Rob在下面指出的,还有setTransform:bounds)。图像视图和任何其他类型的视图之间没有区别。

要理解的关键是UIKit Dynamics是完全倒退的。在UIView动画和核心动画中,视图非常密切地参与到动画中。您可以向视图请求其动画,添加和删除它们,等等。但是UIKit Dynamics是粘在一起的,完全在视图之外工作。您不能询问视图是否由UIKit Dynamics管理。你只能问UIKit Dynamics正在扰乱什么视图(你不能总是轻易地问)。

根据我的经验,如果你的动画非常简单,UIKit Dynamics可以合理地工作。但如果事情很复杂,你可能需要用Core Animation(或SpriteKit,根据你的需要)手动完成。关于它的文档也很少。哦,各种行为都有非常不一致的API。这不是我在Cocoa中最喜欢的框架。。。

如果你想看看这方面的一些例子,你可能想从iOS7:PTL(iosptl.com)第19章中提取示例代码。它包括将推送动画师放到视图中。

最新更新