我有一个 UIDynamicAnimator
行为:UIPushBehaviour
。我知道 UIView
对象可以通过 initWithReferenceView
变成动态对象。但是动态对象是否有可能成为 UIImageView
。如果是这样,怎么办?
(我看过苹果开发者文档,对UIDynamicAnimator
的概念还真没把握,如有愚蠢请见谅)
任何事物都不会“成为动态对象”。这不是思考的方式。动态动画师具有行为。行为有项目。一个 View 可以是一个项目。这意味着 UIDynamicAnimator
可以为 UIImageView
设置动画。该 View 不知道它正在被动画化。它只是反复调用 setCenter:
(如下面的@Rob 注释,还有 setTransform:
和 bounds
)。 ImageView 和任何其他类型的 View 在这里没有区别。
理解的关键是 UIKit Dynamics 是完全倒退的。在 UIView
动画和 Core Animation 中, View 与动画密切相关。您可以向 View 询问其动画,添加和删除它们等。但是 UIKit Dynamics 是粘在上面的,并且完全在 View 之外工作。您不能询问 View 是否由 UIKit Dynamics 管理。你只能问 UIKit Dynamics 它在处理什么 View (而且你不能总是轻易地问这个问题)。
根据我的经验,如果您的动画非常简单,UIKit Dynamics 可以正常工作。但是如果事情很复杂,您可能需要使用 Core Animation(或 SpriteKit,取决于您的需要)手动完成。它的文档也很少。哦,各种行为都有非常不一致的 API。它不是我最喜欢的 Cocoa 框架...
如果您想查看这方面的一些示例,您可能需要从 iOS 7 中下载示例代码TL (iosptl.com)Chapter 19 .它包括将推送动画师放到 View 中。
关于ios - 动态对象可以是 UIImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26371308/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |