我正在尝试使用几个CGAffineTransforms
和CGAffineTransformConcats
. 我试图实现的总体目标是让我的图像在向上移动 50 像素的同时旋转 45 度,然后在向下移动时再旋转 45 度。
CGAffineTransform translateUp = CGAffineTransformMakeTranslation(0, -50);
CGAffineTransform firstSpin = CGAffineTransformMakeRotation(M_PI_4);
CGAffineTransform translateDown = CGAffineTransformMakeTranslation(0, 50);
CGAffineTransform secondSpin = CGAffineTransformMakeRotation(M_PI_4);
CGAffineTransform transform1 = CGAffineTransformConcat(translateUp, firstSpin);
CGAffineTransform transform2 = CGAffineTransformConcat(translateDown, secondSpin);
CGAffineTransform transformFull = CGAffineTransformConcat(transform1, transform2);
[UIView beginAnimations:@"MoveAndRotate" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.5];
mainCharacterImage.transform = transformFull;
[UIView commitAnimations];
现在请注意,我对所有与 CG 相关的东西都很陌生,但我不明白为什么这不起作用。
但是我不认为这是一个奇怪的部分,我的问题主要是,谁能向我解释为什么上面的代码导致我的图像不仅向上移动和旋转,而且移动右边大约 100 像素?
任何建议都非常感谢!