1
我尝试使用几个CGAffineTransforms
和CGAffineTransformConcats
将动画串起来。我试图实现的总体目标是让图像旋转45度,同时向上移动50像素,然后再向下旋转45度。使用CGAffineTransform的奇怪结果
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个像素?
任何建议非常感谢!