ボタンのグリッドで実現したい同様の効果がありました。iOS 5 がサポートする自動サイズ変更では、単純にそれができないことがわかると思います。最後に、iOS 6 デバイス用と iOS 5 用の 2 つのストーリーボードがありました。その後、アプリ デリゲートは、メイン ビューconstraints
が UIView のメソッドに応答するかどうかを確認しました (これは、新しい iOS 6 制約ベースをサポートしているかどうかを示します)。レイアウト) を作成し、関連するストーリーボードをロードしました。
あなたの- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
方法でこのようなもの:
if (![self.window.rootViewController.view respondsToSelector:@selector(constraints)]) {
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_BC_iPhone" bundle:nil];
UITabBarController *rootController = [storyboard instantiateInitialViewController];
[self.window setRootViewController:rootController];
}
iOS 6 ストーリーボードはデフォルトで読み込まれますが、必要に応じて下位互換性のあるストーリーボードで上書きされます。iPhone 5 は最小 iOS 6 のみを実行するため、下位互換性のある Storyboard は 3.5 インチ ディスプレイ用に手動で設定されます。したがって、下位互換性のある Storyboard は 4 インチ ディスプレイで実行する必要はありません。
下位互換性のある Storyboard のセットアップには、それほど時間はかかりませんでした。制約を使用する iOS 6 のものを複製し、3.5 インチ ディスプレイに設定し、制約をオフにして、ビューを修正するだけです。
別の方法として、画面のサイズに基づいてプログラムでアイコンをレイアウトすることもできます。これの利点は、任意の画面サイズに対応するように設計できることですが、欠点は、おそらくより多くの労力が必要になることです.
[編集] ストーリーボードではなく .xib を使用していることに注意しましたが、理論は同じです。UIView が応答するかどうかを確認し、constraints
それに応じて適切な NIB (.xib) ファイルをロードします。