1

iOS 6 とシミュレーターの AutoLayout に関する一般的な質問があります。私のアプリは iOS 5 と iOS 6 もターゲットにしています。StoryBoard で AutoLayout をオフにする必要があります。そうしないと、iOS 5 シミュレーターでアプリがクラッシュします (AutoLayout は iOS6 で最初にサポートされているため)。しかし、iOS 6 シミュレーターを起動すると、すべてのビューが回転し、それに応じてすべてのサブビューのサイズが変更されます。iOS 5 シミュレーターを使用すると、デバイスの向きを変更してもすべてのビューが回転しません。

それは実際のデバイスでも起こりますか?では、ストーリーボードの AutoLayout オプションをオフにしても、iOS 6 ではすべてのビューがデバイスの向きに合わせて回転し、実際のデバイスではより良いのでしょうか?

ありがとう!

4

3 に答える 3

3

Apple は、iOS 6 での自動回転の仕組みを変更しました。

Xcode 4.6 でプロジェクトを作成すると、Xcode は iOS 6 自動回転 API を使用するようにプロジェクトを設定します。プロジェクト テンプレートでは、縦向き、横向きの左向き、および横向きの右向き (および iPad アプリでは逆さまの縦向き) を使用できます。そのため、iOS 6 (デバイスまたはシミュレーター) でアプリを実行すると、アプリはインターフェイスの回転を許可します。

そのプロジェクトを iOS 5 (シミュレーターまたはデバイス) で実行すると、システムは iOS 6 自動回転 API を無視しshouldAutorotateToInterfaceOrientation:、View Controller でメソッドを探します。Xcode 4.6 ではそのメソッドが作成されていないため (おそらくユーザーが追加していない可能性があります)、システムはデフォルトの実装を使用します。これはYES、縦向きの場合にのみ返されます。したがって、iOS 5 ではインターフェイスの回転はありません。

インターフェイスの回転が必要ない場合の簡単な解決策は、ターゲットの概要に移動して横向きをオフにすることです。

横長のボタンが呼び出されたターゲットの概要

いくつかの公式情報源から詳細を学ぶことができます:

于 2013-07-03T07:35:22.493 に答える
0

iOS 5 をサポートしたい場合は、自動レイアウトを使用しないでください。自動レイアウトは、iOS 6 以降でのみサポートされています。

技術的には、2 つのストーリーボードを用意して、iOS 5 用と iOS 6 用に 1 つずつロードできますが、多くの作業が重複することになります。iOS 5 のサポートを削除できるまで、Auto Layout を控えるのが最善です。

于 2013-07-02T23:39:32.157 に答える