3

私は現在、アルファ 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 に答える