質問

そこで今日は、アプリにランドスケープモードを実装します。OpenGL es アプリケーションです。90度回転させてみました。最初に気づくのは、タッチが機能しなくなったことです。その理由は、locationInView への呼び出しによって、アプリケーションがポートレート モードであるかのように座標が提供されるためです。

人々は通常、これにどのように対処しますか?携帯電話の向きを考慮するために、独自のバージョンの locationInView を作成する必要がありますか?それとももっと良い方法があるのでしょうか?

役に立ちましたか?

解決

これはデフォルトの動作です。 iPhoneを縦または横にあるかどうかは、あなたのアプリでそれを調整する必要がありますので、スクリーン座標は、変更されません。

他のヒント

基本的に 2 つのアプローチがあり、それぞれに独自の欠点/利点があります。

  1. GLview をビューコントローラーにアタッチして、回転イベントを処理させたり、ウィンドウ座標を「ビュー」座標に変換させたりすることができます。これは最も簡単な方法ですが、描画パフォーマンスが低下する可能性があります。

  2. ローテーションは自分で管理してください。UIDeviceOrientationDidChangeNotification 通知によって駆動される、回転を処理するための独自のメソッドを追加する必要があります。このメソッドには、マトリックスの回転、タッチの変換などを行うための GL コマンドが含まれている必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top