2011-06-17 5 views
0

画面全体でラベルをアニメーション化しようとしていますが、正しく動作しないようです。現在、ビューを他のビューにアニメーション表示します。値とのアニメーション

また、必要に応じてアニメーションを「停止」できません。私は音楽プレーヤーでUIViewのトラック名をスクロールするために使用しています.NextまたはPrevをタップすると、アニメーションの途中で停止してからやり直す必要があります。

- (void)startAnimation { 

    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:10]; 
    [UIView setAnimationDelegate:self]; 
    [UIView setAnimationDidStopSelector:@selector(animationDidStop:)]; 

    CGRect frame = trackName.frame; 
    frame.origin.x = -50; 
    trackName.frame = frame; 

    [UIView commitAnimations]; 
} 

- (void)animationDidStop:(id)sender { 
    NSLog(@"animationDidStop"); 

    CGRect frame = trackName.frame; 
    frame.origin.x = 194; 
    trackName.frame = frame; 

    [self startAnimation]; 
} 

答えて

1

あなたがしようとしていることは、ラベルを50ピクセル左に動かすようにアニメートすることです。もしそうなら、あなたが行を変更する必要があります:

frame.origin.x -= 50; 

frame.origin.x = -50 

を問題は、あなたが左サイドオフ50個のピクセルである-50〜フレームの新しい原点を、設定されていることですビューの代わりに、現在の位置から50ピクセルを引いて、元の位置から50ピクセル移動させる必要があります。

関連する問題