我有一个使用drawRect:
绘制的UITableViewCell。我正在绘制drawRect中的一个形状,并且想要在使用单元格进入编辑模式时为此形状创建动画(使用某个参数)。Core Animation和drawRect:
但是,我找不到如何使用drawRect中的动画参数。有人可以指向我正确的文档,或者它是不可能的吗?
谢谢!
我有一个使用drawRect:
绘制的UITableViewCell。我正在绘制drawRect中的一个形状,并且想要在使用单元格进入编辑模式时为此形状创建动画(使用某个参数)。Core Animation和drawRect:
但是,我找不到如何使用drawRect中的动画参数。有人可以指向我正确的文档,或者它是不可能的吗?
谢谢!
使用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
。
你不清楚什么样的形状和什么样的动画。如果你只需要一个基本的形状,例如正方形,矩形或圆形,就可以避免重写drawRect,并使用CALayer - 将它添加到单元格的层次结构中。对于其他形状,您可以对形状图层执行相同操作。
您应该考虑绘制视图内容的drawRect而不是动画。如果您想使用drawRect渲染视图,那很好,但是如果您只是要移动形状,请改为为视图的中心或图层的位置设置动画。
如果你想用drawRect来使用Core Animation(我会推荐它),你可能需要为你的drawRect中使用的自定义属性设置动画,但我打赌你想要的是什么不用drawRect就可以做得更简单。层是你的朋友,可以在很多情况下帮助你。也许要详细说明你想要做什么,有人可以为你提供更完整的解决方案。
最好的问候。
确实如此,但您也可以使用CoreAnimation [layer presentationLayer]获取当前绘制图层的属性:] – 2010-10-12 08:20:59