0

次のコードを使用して、いくつかの CALayers を含む iPhone で 320x320 UIView (黒) を回転させてみました。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:2];
    CGAffineTransform rr=CGAffineTransformMakeRotation(M_PI_2*2);
    self.transform=rr;
    [UIView commitAnimations];
}

M_PI_2 は pi/2 (math.h) であることに注意してください。このコードは、ビューをその場で 180°回転させます。ただし、それ自体を M_PI_2 に変更すると (*2 なし)、黒い UIView が消え、コンテンツが下と右に移動し、ほとんど画面外で回転します。どうしてこれなの?ビューが90°回転しない理由がわかりません。

4

1 に答える 1

1

はとtransformは異なるからaffineTransformです。transformは構造体を想定しているCATransform3Dため、代わりに便利なメソッドを使用する必要がありますsetAffineTransform

編集

だからそれselfはUIViewのようで、私の上記の答えは無関係です。を使ってみてください[UIView setAnimationBeginsFromCurrentState:YES]

于 2013-01-23T03:36:58.903 に答える