タッチ スクリーン ジェスチャに応答して、さまざまなスケールと回転 CGAffineTransforms が適用された UIView があります。
スケール操作が完了したら、ビューの境界を新しいサイズに調整し、変換の他のすべてのコンポーネントを同じに保ちながら、ビュー自体をスケール 1.0 で再描画します。
ビューの境界を調整するために、私は以下を使用しています:
self.myView.bounds = CGRectApplyAffineTransform(self.myView.bounds, self.myView.transform);
スケール変換を「元に戻す」ために、私はこれを試しています:
self.myView.transform = CGAffineTransformConcat(self.myView.transform, CGAffineTransformMakeScale(1, 1));
[myView setNeedsDisplay]
次に、ビューを再描画するために呼び出します。
ただし、これでは目的の結果が得られず、回転変換が適用されると、上記のコードにより、横方向の平行移動変換のように見えるものも適用されるようです。
スケール変換だけを「元に戻し」、他のすべての変換をそのままにして、ビューを 1:1 で再描画する最もクリーンな方法は何ですか?