Iphone 如何在使用-drawRect:时设置动画?

Iphone 如何在使用-drawRect:时设置动画?,iphone,Iphone,我没有使用子视图,而是在UIView子类中使用-drawRect:绘制我的东西。现在我想在那里做一些动画 我想我现在不能指望核心动画,因为我没有子视图。那么我该如何制作动画呢?我能设置一个每秒30次的计时器吗?我如何知道动画步骤?我会制作一个ivar来计算动画的帧,这样我就可以在调用时在-drawRect中完成我的工作吗?你可以做到这一点:使用一个带有帧编号的实例变量,并在计时器中递增它。如果您不关心放松,那么可以将帧数乘以速度,然后将其设置为要设置动画的属性 -(void)timerfunct

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


我想我现在不能指望核心动画,因为我没有子视图。那么我该如何制作动画呢?我能设置一个每秒30次的计时器吗?我如何知道动画步骤?我会制作一个ivar来计算动画的帧,这样我就可以在调用时在-drawRect中完成我的工作吗?

你可以做到这一点:使用一个带有帧编号的实例变量,并在计时器中递增它。如果您不关心放松,那么可以将帧数乘以速度,然后将其设置为要设置动画的属性

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

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

这很管用,但听起来很疯狂。你画了几百次相同的内容,在TableView的情况下可能会导致性能问题。我会参考CALayer动画