私の質問は、ビューの変換を保存およびリセットする方法として要約できると思います。しかし、おそらく私の状況を説明することが役立つかもしれません。
以下の変換をビューに次々に適用すると(このコードをスイッチやボタンに追加する場合など)。期待どおりの結果が得られます。スケールは、元のビューの.55倍のサイズのビューと元のスケールのビューの間で切り替わります。私が望むように、someViewのサブビューもスケーリングするように機能します。広告は無限大。完全。
//tranformScale 1
someView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.55, 0.55 );
//tranformScale 2
someView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1.0, 1.0 );
問題は、このコード(または同様のコード)を使用して、iOSデバイスが横向きになったときにself.viewのサブビューを拡大縮小し、横向きの画面にサブビューを合わせる(そして縦向きの場合はバックアップする)ことです。ほとんど機能しますが、何らかの理由で、スケーリングされているビューのフレームのラウンド値の値を出力する代わりに(ボタンを使用して変換を呼び出すテストの場合のように)、徐々に奇妙な値が生成されます。最終的に、約4回転した後、サブビューが画面から飛び出します。self.viewの形状の変化に関係しているのではないかと思いますが、self.viewのフレームをログに記録すると、その形状は非常に予測可能です。
ちなみに、自動レイアウトを使用するのではなく、autoresizingMaskの柔軟なマージンを使用してビューを中央に配置しています。おそらく、別のタイプの計算でビューを中央に配置する必要がありますか?
読んでくれてありがとう!