我没有使用子视图,而是使用-drawRect:在UIView子类中绘制我的东西。现在我想在那里做一些动画。
我想我现在不能指望核心动画,因为我没有子视图。那么我将如何制作动画呢?我会设置一个每秒发射30次的计时器吗?我怎么知道动画步骤?我会制作一个用于计算动画帧数的ivar,以便在调用时可以在-drawRect中执行我的操作吗?
答案 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动画