-3

こんにちは、IOS バージョン 5.1 用にアプリをビルドしましたが、Retina 4 インチ用の IPhone シミュレーターに関するすべてのビューが上に移動したため、IOS6 用にサポートしたいと考えています。この問題を回避する最も簡単な方法を教えてください。画面に多くのビューがあるため

4

1 に答える 1

0

わかりました。別の XIB を作成し、「_iPhone5」を追加するだけです。このような:

ViewController1_iPhone5

その xib で、Files Owner をビュー コントローラーに設定し、すべての UI 要素を好みに合わせて再レイアウトし、アウトレットを設定します。ここで、このビュー コントローラーを表示するたびに、デバイスが iPhone 5 であるかどうかを確認し、それに応じて nib 名を調整します。

これを Prefix ファイル (作成したすべてのファイルにインポートされるファイル。クラスをそこにインポートすると、すべてのファイルにインポートされます) で定義します。Prefix ファイルで定義したくない場合は、View Controller で定義できます (サポート ファイルにあるはずです)。

#define IS_IPHONE_5 ( fabs ( (double)[[UIScreen mainScreen] bounds].size.height - ( double)568 ) < DBL_EPSILON )

次に、これを使用できます:

    if (IS_IPHONE_5 && [[UIDevice currentDevice] userInterfaceIdiom] != UIUserInterfaceIdiomPad) {

    UIViewController *vc1 = [[MenuMileIndexViewController alloc] initWithNibName: @"ViewController_iPhone5" bundle: nil];

   // present the view controller

}

XIB を使用しておらず、ビューをプログラムでコーディングしている場合は、次を使用します。

        if (IS_IPHONE_5 && [[UIDevice currentDevice] userInterfaceIdiom] != UIUserInterfaceIdiomPad) {


// Reposition and resize your subviews

}

注: iPhone 5 の既定のイメージを必ず追加してください。

于 2012-10-18T08:07:02.750 に答える