【发布时间】:2010-10-12 06:42:36
【问题描述】:
我有一个使用drawRect: 绘制的 UITableViewCell。我正在 drawRect 中绘制一个形状,并希望在使用单元格进入编辑模式时为这个形状设置动画(使用一些参数)。
但是,我找不到如何在 drawRect 中使用动画参数。有人可以指出我正确的文档还是不可能?
谢谢!
【问题讨论】:
标签: iphone uitableview core-animation core-graphics
我有一个使用drawRect: 绘制的 UITableViewCell。我正在 drawRect 中绘制一个形状,并希望在使用单元格进入编辑模式时为这个形状设置动画(使用一些参数)。
但是,我找不到如何在 drawRect 中使用动画参数。有人可以指出我正确的文档还是不可能?
谢谢!
【问题讨论】:
标签: iphone uitableview core-animation core-graphics
研究使用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 渲染视图,这很好,但如果您只是要移动形状,请为视图的中心或图层的位置设置动画。
如果您想将 Core Animation 与 drawRect 一起使用(我建议不要这样做),您可能必须为您将在 drawRect 中使用的自定义属性设置动画,但我敢打赌您正在尝试做的事情没有drawRect可以更简单地完成。图层是您的朋友,可以在很多情况下为您提供帮助。也许详细说明您正在尝试做什么,有人可以为您提供更完整的解决方案。
最好的问候。
【讨论】: