【发布时间】:2010-04-25 15:34:19
【问题描述】:
我没有使用子视图,而是在 UIView 子类中使用 -drawRect: 绘制我的东西。现在我想在里面做一些动画。
我想我现在不能指望核心动画,因为我没有子视图。那么我将如何制作动画呢?我会设置一个每秒触发 30 次的计时器吗?我怎么知道动画步骤?我会制作一个计算动画帧数的 ivar,以便我可以在 -drawRect 被调用时做我的事情吗?
【问题讨论】:
标签: iphone
我没有使用子视图,而是在 UIView 子类中使用 -drawRect: 绘制我的东西。现在我想在里面做一些动画。
我想我现在不能指望核心动画,因为我没有子视图。那么我将如何制作动画呢?我会设置一个每秒触发 30 次的计时器吗?我怎么知道动画步骤?我会制作一个计算动画帧数的 ivar,以便我可以在 -drawRect 被调用时做我的事情吗?
【问题讨论】:
标签: iphone
您完全可以这样做:有一个带有帧号的实例变量,并在计时器中增加它。如果您不关心缓动,则可以将帧数乘以速度,然后将其设置为您要设置动画的属性。
-(void)timerfunction{
++frame;
[self setNeedsDisplay];
}
-(void)drawRect:(CGRect)rect{
CGContextFillRect(UIGraphicsGetCurrentContext(),CGRectMake((2*frame)+5,5,20,20));
}
【讨论】:
这可行,但听起来很疯狂。你绘制相同的内容数百次,它可能会在 TableView 的情况下导致性能问题。我会参考 CALayer 动画
【讨论】: