3

我目前正在开发一个使用 alpha C4 框架构建的项目。

我正在尝试在应用程序启动后立即启动动画,而不必使用某种交互来让它运行(即 touchesBegan)......

但不幸的是我无法弄清楚。

4

1 回答 1

2

在 C4 中,这样做的方法是利用以下方法:

-(void)performSelector:withObject:afterDelay:

而且,对于当前版本的 C4,最好的使用方法是:

#import "C4WorkSpace.h"

@interface C4WorkSpace ()
-(void)methodToRunImmediately;
@end

@implementation C4WorkSpace {
    C4Shape *circle;
}

-(void)setup {
    circle = [C4Shape ellipse:CGRectMake(100, 100, 100, 100)];
    [self.canvas addShape:circle];
    [self performSelector:@selector(methodToRunImmediately) withObject:nil afterDelay:0.1];
}

-(void)methodToRunImmediately {
    circle.animationDuration = 1.0f;
    circle.animationOptions = AUTOREVERSE | REPEAT;
    circle.center = CGPointMake(384, 512);
}
@end

此代码将在延迟 1/10 秒后开始您的动画......这看起来会立即生效。


上面的答案是很久以前发布的,我们能够为此实现一个更简单的方法,不需要知道选择器是什么。现在可以使用以下代码运行上面的代码:

-(void)runMethod:afterDelay:

这样,在 C4 中,原始行:

[self performSelector:@selector(methodToRunImmediately) 
           withObject:nil 
           afterDelay:0.1];

...可以重写为:

[self runMethod:@"methodToRunImmediately" afterDelay:0.1];
于 2012-04-30T18:58:46.427 回答