uiviewcontrollerローテーションの質問
-
12-10-2019 - |
質問
アプリには、ランドスケープモードのみをサポートするメインメニューがあります。設定してランドスケープ制限を実装します UIRootViewController::shouldAutorotateToInterfaceOrientation:...
そして、私はポートレートモードのサポートを備えた別のシーンを持っています。したがって、問題は、ポートレートモードで別のシーンからメインメニューに渡すと表示されます。アプリは自動的にランドスケープに回転せず、手動で回転するコードメソッドが見つかりません。
解決策はありますか?感謝するでしょう。
編集:すみません、詳細を追加するのを忘れました。 rootViewControllerは、メニューと別のシーンに一般的です。さらに - これらのシーンは1つの一般的なビューにあります(私のアプリはOpenGLを使用しています)ので、ポートレートシーンからメニューを入力する前に設定しました UIRootViewController::shouldAutorotateToInterfaceOrientation:
ランドスケープのみでイエスを返すため。
解決
ポートレートサポートを備えた他のシーンが別のuiviewcontrollerによって制御されている場合、そのビューコントローラーのshouldautorotatointerfaceorientation:その動作を定義することができます。多くの場合、これだけで十分です。もちろん、一部のビューコントローラーではなく、他のものではないために派手なローテーションを行う必要がある場合、物事は少し難しくなります。
他のヒント
これを行う簡単な方法はありません。ただし、[uidevice setOrientation:]は、開発者に開かれておらず、Appleによるアプリケーションの拒否につながります。
レイヤーに回転を適用できます。これにより、まったく同じ効果が生まれます。
myview.layer.transform = CATransform3DMakeRotation(M_PI/2, 0.0f, 0.0f, 1.0f);