0

iPhone画面で回転するビューを表現しようとしています。ボタンがあり、押すとビューが 180 度回転します。

私の問題は、これが最初にしか機能しないことです。

コードは次のとおりです。

-(IBAction) flip:(id)sender{

    CGAffineTransform transform; //the transform matrix to be used below

    //BEGIN ANIMATIONS
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:2.0];

    //animate 
    if (flag){
        transform = CGAffineTransformMakeRotation( RADIANS(180) );
    } else {
        transform = CGAffineTransformMakeRotation( RADIANS(-180) );
    }
    flag = !flag;
    transform = CGAffineTransformTranslate(transform, 0, 0);
    self.mySuview.transform = transform;

    //COMMIT ANIMATIONS
    [UIView commitAnimations];

}

最初にクリックすると、ビューは問題なく回転しますが、もう一度クリックすると何も起こりません。エラーも、ビューの変更もありません。

私は何が欠けていますか?

ありがとうゴンソ

4

1 に答える 1

0

基本的に、変換を両方の時間で同じに設定しています。else {} ステートメントで、次を使用します。

変換 = CGAffineTransformMakeRotation( RADIANS(0) );

そのままでは、コードは 180 を取得して -180 を追加するのではなく、180 を取得して -180 に設定しています。

于 2010-07-16T16:49:20.317 に答える