0

ビューの 1 つでアニメーションにこのコードを使用しています。

animation.animationImages= [NSArray arrayWithObjects:
                                [UIImage imageNamed:@"Frame0.png"],
                                [UIImage imageNamed:@"Frame1.png"],
                                [UIImage imageNamed:@"Frame2.png"],
                                [UIImage imageNamed:@"Frame3.png"],
                                [UIImage imageNamed:@"Frame4.png"],
                                [UIImage imageNamed:@"Frame5.png"],
                                [UIImage imageNamed:@"Frame6.png"],
                                [UIImage imageNamed:@"Frame7.png"],
                                [UIImage imageNamed:@"Frame8.png"],
                                [UIImage imageNamed:@"Frame9.png"],
                                [UIImage imageNamed:@"Frame10.png"],
                                [UIImage imageNamed:@"Frame11.png"],
                                [UIImage imageNamed:@"Frame12.png"],
                                [UIImage imageNamed:@"Frame13.png"],
                                [UIImage imageNamed:@"Frame14.png"],
                                nil];

    [animation setAnimationRepeatCount:1];
    animation.animationDuration = 1;
    [animation startAnimating];

ここで、アニメーションがいつ終了するかを述べる必要があります。「メニュー」と「リプレイ」という 2 つのボタンが表示されます。停止アニメーションまたは何か他のものを使用しますか。私は初心者なので、助けて説明してください。

4

2 に答える 2

1

アニメーションの長さは1秒なので、次のようにします。

animation.animationImages= [NSArray arrayWithObjects:
                                [UIImage imageNamed:@"Frame0.png"],
                                [UIImage imageNamed:@"Frame1.png"],
                                [UIImage imageNamed:@"Frame2.png"],
                                [UIImage imageNamed:@"Frame3.png"],
                                [UIImage imageNamed:@"Frame4.png"],
                                [UIImage imageNamed:@"Frame5.png"],
                                [UIImage imageNamed:@"Frame6.png"],
                                [UIImage imageNamed:@"Frame7.png"],
                                [UIImage imageNamed:@"Frame8.png"],
                                [UIImage imageNamed:@"Frame9.png"],
                                [UIImage imageNamed:@"Frame10.png"],
                                [UIImage imageNamed:@"Frame11.png"],
                                [UIImage imageNamed:@"Frame12.png"],
                                [UIImage imageNamed:@"Frame13.png"],
                                [UIImage imageNamed:@"Frame14.png"],
                                nil];

    [animation setAnimationRepeatCount:1];
    animation.animationDuration = 1;
    [animation startAnimating];
    [self performSelector:@selector(didFinishAnimating) withObject:nil afterDelay:1.0];


-(void) didFinishAnimating {
   //animation ended add some buttons
}
于 2012-07-29T18:05:17.813 に答える
0

アニメーションが終了したら、NSTimer を使用して別のメソッドを呼び出すことができます。NSTimer と animationDuration プロパティの両方に同じ時間間隔を使用して購入します。

animation.animationImages= [NSArray arrayWithObjects:
                            [UIImage imageNamed:@"Frame0.png"],
                            [UIImage imageNamed:@"Frame1.png"],
                            [UIImage imageNamed:@"Frame2.png"],
                            [UIImage imageNamed:@"Frame3.png"],
                            [UIImage imageNamed:@"Frame4.png"],
                            [UIImage imageNamed:@"Frame5.png"],
                            [UIImage imageNamed:@"Frame6.png"],
                            [UIImage imageNamed:@"Frame7.png"],
                            [UIImage imageNamed:@"Frame8.png"],
                            [UIImage imageNamed:@"Frame9.png"],
                            [UIImage imageNamed:@"Frame10.png"],
                            [UIImage imageNamed:@"Frame11.png"],
                            [UIImage imageNamed:@"Frame12.png"],
                            [UIImage imageNamed:@"Frame13.png"],
                            [UIImage imageNamed:@"Frame14.png"],
                            nil];

[animation setAnimationRepeatCount:1];
animation.animationDuration = 1;
[animation startAnimating];
[NSTimer  scheduledTimerWithTimeInterval:1
                                  target:self
                                selector:@selector(showOtherButtonsAfterAnimation:)
                                userInfo:nil
                                 repeats:NO];

NSTimer は、選択した間隔 (1 秒) 後に、ターゲット オブジェクト (self) のセレクター (showOtherButtonsAfterAnimation:) で設定したメソッドを呼び出します。showOtherButtonsAfterAnimation: メソッドには、メソッドで使用しない場合でも NSTimer 引数が必要です。

-(void)showOtherButtonsAfterAnimation:(NSTimer*)theTimer { .... whatever ..... }
于 2012-07-29T18:11:07.907 に答える