我使用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];
}
我的问题是图像只是翻译它不是旋转。如果我分别使用旋转和平移意味着它工作得很好。我怎样才能修改我的代码,使两者都能很好地工作?
问题是你正在做一个单独的旋转,然后翻译和设置它。所以旋转被平移所覆盖。你必须这样做,
CGAffineTransform transform = CGAffineTransformRotate(imageView.transform, 1);
transform = CGAffineTransformTranslate(transform, 1, 1);
imageView.transform= transform;
[self performSelector:@selector(rotateTranslate) withObject:self afterDelay:0.2];
但是这不会使旋转动画化。它会从当前的变换跳到最后的变换。
你似乎没有定义一个结束点