我目前正在开发一个使用 alpha C4 框架构建的项目。
我正在尝试在应用程序启动后立即启动动画,而不必使用某种交互来让它运行(即 touchesBegan)......
但不幸的是我无法弄清楚。
在 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];