ユーザーがデバイスを回転させたときに図面が回転しないようにしたいと考えるのは難しいというlnafzigerに同意する必要があります。描画するとき、画像の上下と左右の側面は創造的な描画プロセスに非常に不可欠であるため、ビューのコントロールが回転するのを見るのは非常に奇妙だと思いましたが、画像は回転しません。結論として、ユーザーがデバイスを回転させても、画像の上下左右を保持したいのではないかと思います。しかし、あなたは絶対に正しいと思います。ユーザーがデバイスを回転させたときに画像のアスペクト比が変化した場合(つまり、画像を押しつぶした場合)、ユーザーは方向感覚を失ってしまうでしょう。
ここで、アスペクト比が乱れるのを防ぐ1つの解決策をほのめかしました。つまり、768x768などの描画画像を正方形に保ち、いくつかのコントロール/ツールをレイアウトするために余分なスペースを使用する可能性があります。さらに良いことに、ユーザーがパン/スクロールできるページで構成される図面の概念を導入することもできます。そうすれば、ユーザーが望む任意のサイズの画像を作成でき、ユーザーがデバイスを回転させても、画像の「ページ」は変更されず、iPad画面で表されるそのページへの小さなビューポートだけが変更されます。また、ユーザーが画像を回転させたいと確信している場合は、デバイスの向きに関係なく、ページを回転させる機能をユーザーに提供します。彼らが望むすべての座標を新しい空間に簡単にマッピングすることができます。そのマッピングは非常に簡単なはずです。
ただし、デバイスを回転させるときに画像を回転させないと判断した場合(これは良い考えではないと主張しているにもかかわらず)、2つのアプローチがあるようです(最も簡単な解決策を考えていない場合は、これは、アプリで1つの方向のみを許可します):
まず、ユーザーが描画するオブジェクトのすべての座標を再マップし、回転が完了したらオブジェクトを再描画できます。繰り返しますが、90度回転したときのすべてのx、y座標の再マッピングは非常に簡単です。
次に、図面を独自のレイヤーに配置し、デバイスの回転時にCGAffineTransformRotateを実行できます(たとえば、ユーザーがデバイスを時計回りに90度、つまりPI / 2ラジアン回転させた場合、レイヤーPI/2を回転させます。反時計回り)。新しい座標を変換されたレイヤーにマップする必要があるかもしれないので、変換後に新しい線や他のオブジェクトを描画するときにこれが混乱する可能性があると私は思いますが、それを機能させることができると思います。詳細については、 CGAffineTransformRotateのドキュメントを参照してください。そして、あなたがそれをググると、そこにはたくさんの例があります。