使用-drawRect时如何制作动画:?

时间:2010-04-25 15:34:20

标签: iphone

我没有使用子视图,而是使用-drawRect:在UIView子类中绘制我的东西。现在我想在那里做一些动画。

我想我现在不能指望核心动画,因为我没有子视图。那么我将如何制作动画呢?我会设置一个每秒发射30次的计时器吗?我怎么知道动画步骤?我会制作一个用于计算动画帧数的ivar,以便在调用时可以在-drawRect中执行我的操作吗?

2 个答案:

答案 0 :(得分:1)

你可以这样做:拥有一个带有帧号的实例变量,并在计时器中递增它。如果您不关心缓和,则可以将帧数乘以速度,然后将其设置为要设置动画的属性。

-(void)timerfunction{
    ++frame;
    [self setNeedsDisplay];
}

-(void)drawRect:(CGRect)rect{
    CGContextFillRect(UIGraphicsGetCurrentContext(),CGRectMake((2*frame)+5,5,20,20));
}

答案 1 :(得分:1)

这可行,但听起来很疯狂.YOu绘制相同内容的时间,并且在TableView的情况下可能会导致性能问题。我会参考CALayer动画