opengl es のランドスケープ モードと locationInView
質問
そこで今日は、アプリにランドスケープモードを実装します。OpenGL es アプリケーションです。90度回転させてみました。最初に気づくのは、タッチが機能しなくなったことです。その理由は、locationInView への呼び出しによって、アプリケーションがポートレート モードであるかのように座標が提供されるためです。
人々は通常、これにどのように対処しますか?携帯電話の向きを考慮するために、独自のバージョンの locationInView を作成する必要がありますか?それとももっと良い方法があるのでしょうか?
解決
これはデフォルトの動作です。 iPhoneを縦または横にあるかどうかは、あなたのアプリでそれを調整する必要がありますので、スクリーン座標は、変更されません。
他のヒント
基本的に 2 つのアプローチがあり、それぞれに独自の欠点/利点があります。
GLview をビューコントローラーにアタッチして、回転イベントを処理させたり、ウィンドウ座標を「ビュー」座標に変換させたりすることができます。これは最も簡単な方法ですが、描画パフォーマンスが低下する可能性があります。
ローテーションは自分で管理してください。UIDeviceOrientationDidChangeNotification 通知によって駆動される、回転を処理するための独自のメソッドを追加する必要があります。このメソッドには、マトリックスの回転、タッチの変換などを行うための GL コマンドが含まれている必要があります。
所属していません StackOverflow