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];
}

我的问题是图像只是在翻译它不是在旋转。如果我分别使用旋转和翻译意味着它工作得很好。如何修改我的代码以使其正常工作?

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 回答