【问题标题】:How to animate stuff when using -drawRect:?使用 -drawRect: 时如何为内容设置动画?
【发布时间】:2010-04-25 15:34:19
【问题描述】:

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

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

【问题讨论】:

    标签: iphone


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-06
        • 1970-01-01
        • 2019-07-14
        • 1970-01-01
        相关资源
        最近更新 更多