私は現在、アルファ 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];