0

画像の回転には CGAffineTransformMakeRotation を使用し、画像の移動には CGAffineTransformMakeTranslation を使用します。これは私のコードです:

-(void)rotateTranslate
{
    r++;
    CGAffineTransform transform = CGAffineTransformMakeRotation(r);
    imageView.transform = transform;
    x++;
    y++;
    CGAffineTransform transform1=CGAffineTransformMakeTranslation(x,y);
    imageView.transform= transform1;
    [self performSelector:@selector(rotateTranslate) withObject:self afterDelay:0.2];
}

私の問題は、画像が翻訳されているだけで、回転していないことです。Rotate と Translate を別々に使用すると、かなりうまく機能します。コードを変更して両方ともうまく機能させるにはどうすればよいですか?

4

1 に答える 1

3

問題は、個々の回転を行ってから、移動して設定していることです。したがって、回転は移動によって上書きされます。このようなことをしなければなりません。

CGAffineTransform transform = CGAffineTransformRotate(imageView.transform, 1);
transform = CGAffineTransformTranslate(transform, 1, 1);

imageView.transform= transform;

[self performSelector:@selector(rotateTranslate) withObject:self afterDelay:0.2];

しかし、これは回転をアニメートしません。現在の変換から最後の変換にジャンプするだけです。

そして、エンドポイントが定義されていないようです。

于 2011-07-14T13:05:48.693 に答える