我需要其中电弧维持恒定的半径r的假想圆中心进行动画在下列情况下的弧(又名甜甜圈段)(弧位于在圈子外面)。
1)将圆弧笔画宽度从x移动到y,同时保持半径r和角度α。
2)在保持恒定的笔画宽度和半径的同时,将圆弧角度从alpha设置为beta。
3)做1和2在一起,但可能与独立的动画/时间。
这是我到目前为止有:
我已经实现了圆弧绘制为简单的绘制与CGContextAddArc弧自定义视图。这对于静态弧线来说很好,但它不会动画。
此外,我知道如何绘制像[UIBezierPath addClip]这样的剪辑图像。
后者很有趣,因为我认为对于情景1,我可以通过两种方式实现预期效果:或者不断绘制圆弧并修改笔画和半径以保持相同的感知内圆半径(即我不要乐观,恐怕半径会“抖动”),或者绘制一个尺寸增大的圆的一部分(也许通过简单地用仿射变换修改该尺度),然后用静态圆形遮罩来裁剪。
现在,我如何理解所有这些概念,并将它们归纳为一些实际的绘图代码?我不需要真正的代码(虽然这也可以),但更像是一个概念性的方法,我可以用一个带有自定义绘图的UIView来完成这一切,还是我们需要谈论我自己理解的自定义关键动画涉及CALayers等。换句话说,什么是正确的架构来完成所有这些,从合成的角度来看,对于流畅的动画来说,最简单的代码是有效的?
+1,这会让我链接到的教程简单得多! – jrturton
谢谢。我通过添加CAShapeLayer作为我的自定义UIView的子图层,然后使用CABasicAnimation按照您的建议动画化它的属性,从而完成了我想要的任务。对于甜甜圈孔,我添加了一个图层蒙版。 – Jaanus
嘿!我试图完成同样的事情,并且很高兴看到一些代码......我试图实现David的建议,但是我无法为“strokeEnd”设置动画...以下是我拥有的:https ://gist.github.com/4073608 – Eric