1. ホーム
  2. iphone

[解決済み] iPhoneの向きを設定する方法はありますか?

2023-02-13 18:24:49

質問

あるアプリで、特定のビューでのデバイスの回転をサポートしたいのですが、他のビューは横向きモードでは特に意味をなさないので、ビューを交換するときに、回転を縦向きに設定することを強制したいのです。

トリックを行う UIDevice の文書化されていないプロパティ セッターがありますが、明らかにコンパイラーの警告を生成し、SDK の将来の改訂で消えてしまう可能性があります。

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait];

向きを強制的に変更するためのドキュメントがありますか?

更新しました。 私はすでにそれを実装しているので、私はshouldAutorotateToInterfaceOrientationを探していないので、私は例を提供すると思った。

私は、アプリがビュー 1 では横向きと縦向きをサポートし、ビュー 2 では縦向きのみにしたいのです。 私はすでにすべてのビューに対して shouldAutorotateToInterfaceOrientation を実装しましたが、ユーザーがビュー 1 で横向きにいて、ビュー 2 に切り替えると、電話を縦向きに強制回転させたいと考えています。

どのように解決するのですか?

この問題は、iPhone 3.1.2 SDK 以降では発生しなくなりました。 スタックにプッシュ バックされるビューの要求された向きを尊重するようになったようです。 つまり、古い iPhone OS バージョンを検出し、最新のリリースより前の場合にのみ setOrientation を適用する必要があるということでしょう。

Apple の静的解析が、古い SDK の制限を回避して作業していることを理解できるかどうかは、明らかではありません。 私自身は、次のアップデートでメソッド呼び出しを削除するように Apple に言われたので、古いデバイス用のハックが承認プロセスを通過するかどうかはまだわかりません。