核心动画和drawRect:

时间:2010-10-12 06:42:36

标签: iphone uitableview core-animation core-graphics

我有一个使用drawRect:绘制的UITableViewCell。我在drawRect中绘制一个形状,并希望在使用单元格进入编辑模式时为此形状设置动画(使用某个参数)。

但是,我找不到如何在drawRect中使用动画参数。有人能指出我正确的文件还是不可能?

谢谢!

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

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

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

如果你想使用带有drawRect的Core Animation(我建议不要使用它),你可能需要设置一个你将在drawRect中使用的自定义属性的动画,但我打赌你正在尝试做什么没有drawRect可以更简单地完成。图层是你的朋友,可以在很多情况下帮助你。也许详细说明你想要做什么,有人可以为你提供更完整的解决方案。

最诚挚的问候。