0

コアグラフィックスから始めたばかりです。シンプルなボタンとラベルで遊ぶ。ボタンをクリックするたびに、このラベルを 180 度回転させます。最初のクリックでのみアニメーション化されます(ただし、コンソールはクリックごとに「DONE」と表示します)

- (IBAction)btnTest:(id)sender
{

    [UIView animateWithDuration:1 delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{

        lblTest.layer.transform = CATransform3DMakeRotation(M_PI,0.0,1.0,0.0);

    }completion:^(BOOL finished) {
        if(finished)
            NSLog(@"DONE");
    }];
}
4

1 に答える 1

2

機能しない理由は、最初にボタンを押したときに、ビューの回転が 180 度に設定されているためです。2 回目にボタンを押すと、回転が 180 度に設定されますが、それは現在の回転の値と同じであるため、何も起こりません。本当にやりたいことは、回転を 180 度 + 現在の回転に設定することです。これを実現するには、次の変更を加えて現在の変換を 180 度回転させます。

lblTest.layer.transform = CATransform3DRotate(lblTest.layer.transform, M_PI,0.0,1.0,0.0);
于 2013-04-29T20:30:03.133 に答える