CGAffineTransformRotateとCGAffineTransformTranslateを使用して、画面全体の車の画像(UIImageView)の進行状況をアニメーション化します。アニメーションはUISliderによって制御されるため、ユーザーがスライダーを進めると、車が進み、角を曲がります。UISliderの各ポイントについて、車のCGAffineTransformRotateプロパティとCGAffineTransformTranslateプロパティの絶対値を設定できる必要があります。
ただし、変換が呼び出されるたびに、車の画像は段階的に変換されます。したがって、たとえば、スライダーポイント0.01でこれを使用する場合:
carImage.transform = CGAffineTransformRotate(carImage.transform, degreesToRadians(5));
carImage.transform = CGAffineTransformTranslate(carImage.transform, 4.0, - 10.0);
そしてこれはスライダーポイント0.02で:
carImage.transform = CGAffineTransformRotate(carImage.transform, degreesToRadians(10));
carImage.transform = CGAffineTransformTranslate(carImage.transform, 8.0, - 20.0);
スライダーの値が0.02の場合、車を10度にし、x値を8、ay値を-20にします。しかし、私が得ているのは、x値が12、ay値が-30の15度の車です。これは、最初の変換後に到達した値に2番目の変換を適用しています。
車のUIImageViewの基本値に各変換を適用するにはどうすればよいですか?つまり、変換されていないUIImageViewに基づいて、各変換を絶対的にする必要があります。変換をインクリメンタルにしたくありません。