【发布时间】:2014-01-27 02:15:21
【问题描述】:
我正在制作一个自定义 UIView 子类,它可以绘制图形(在我自己的 drawRect 方法中)并响应触摸事件。我需要让图表的各个部分都具有动画效果(例如闪烁的热点或在触摸事件后使平移减速)。
驱动动画的参数对我的视图来说是完全私有的,我希望将这些行为封装在类中。 IE。我不希望承载此视图的视图必须做任何事情来完成这项工作。我的视图知道它需要多久重绘一次,我希望它能够控制它。
我的直觉是在我的视图类中创建一个计时器来运行我的动画,但我无法让它触发,而且我得到的印象不是这里的最佳实践。
我需要一种方法让我的视图请求定期调用它的 drawRect 并且理想情况下能够动态控制该周期(这样当发生的事情较少时我可以减慢它的速度)。
我查看了一些 CoreAnimation 方法,但它们对我来说似乎有些矫枉过正,但如果它是正确的方法,我愿意投入其中。
是否有一种简单的方法可以让我定期调用视图的 drawRect 方法?我可以控制它发生的频率吗?
【问题讨论】:
-
CocoaHeads Session: Rob Napier on Animating Custom Layer Properties 是关于自定义动画(在图层上)的一个很好的介绍。
标签: ios objective-c animation uiview drawrect