2010-10-12 57 views
2

我有一个使用drawRect:绘制的UITableViewCell。我正在绘制drawRect中的一个形状,并且想要在使用单元格进入编辑模式时为此形状创建动画(使用某个参数)。Core Animation和drawRect:

但是,我找不到如何使用drawRect中的动画参数。有人可以指向我正确的文档,或者它是不可能的吗?

谢谢!

回答

4

使用CAShapeLayer研究制作形状,它有一个动画的属性path

CAShapeLayer* shape = [CAShapeLayer layer]; 
// Changing this will implicitly animate to new path 
shape.path = [UIBezierPath bezierPathWithOvalInRect:someRect].CGPath; 
shape.fillColor = [UIColor redColor].CGColor; 

对于在动画更多的控制,使用CATransaction

+0

确实如此,但您也可以使用CoreAnimation [layer presentationLayer]获取当前绘制图层的属性:] – 2010-10-12 08:20:59

1

你不清楚什么样的形状和什么样的动画。如果你只需要一个基本的形状,例如正方形,矩形或圆形,就可以避免重写drawRect,并使用CALayer - 将它添加到单元格的层次结构中。对于其他形状,您可以对形状图层执行相同操作。

您应该考虑绘制视图内容的drawRect而不是动画。如果您想使用drawRect渲染视图,那很好,但是如果您只是要移动形状,请改为为视图的中心或图层的位置设置动画。

如果你想用drawRect来使用Core Animation(我会推荐它),你可能需要为你的drawRect中使用的自定义属性设置动画,但我打赌你想要的是什么不用drawRect就可以做得更简单。层是你的朋友,可以在很多情况下帮助你。也许要详细说明你想要做什么,有人可以为你提供更完整的解决方案。

最好的问候。

相关问题