0

現在、iOSアプリケーションをiOS 4.0(3.5インチディスプレイ)からiOS 6.0(4インチディスプレイ)に変換する必要があります。

  1. iOSの古いバージョン(5.0以前)のアプリケーションをios6およびiPhone5と互換性を持たせるための最も簡単な方法を教えてください。

  2. 3.5インチXIBのUIオブジェクトのフレームを4インチXIBに設定する方法を教えてください。

  3. このトピックに関連する優れたチュートリアルや記事をお持ちの方がいらっしゃいましたら、リンクを教えてください。

4

1 に答える 1

1

次のコードを使用して ios6 と iphone 5 を検出し、区別した後、必要に応じて必要な変更を実行する必要があります。

システム定義で指定されたバージョンに準拠する

//#define __IPHONE_2_0 20000
//#define __IPHONE_2_1 20100
//#define __IPHONE_2_2 20200
//#define __IPHONE_3_0 30000
//#define __IPHONE_3_1 30100
//#define __IPHONE_3_2 30200
//#define __IPHONE_4_0 40000

//#define __IPHONE_6_0 60000 関数は次のように記述できます (毎回計算するのではなく、おそらくこのバージョンをどこかに保存する必要があります):

+ (NSInteger) getSystemVersionAsAnInteger{
int index = 0;
NSInteger version = 0;

NSArray* digits = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];
NSEnumerator* enumer = [digits objectEnumerator];
NSString* number;
while (number = [enumer nextObject]) {
    if (index>2) {
        break;
    }
    NSInteger multipler = powf(100, 2-index);
    version += [number intValue]*multipler;
    index++;
}
return version;
}

次に、これを次のように使用できます。

if([Toolbox getSystemVersionAsAnInteger] >= __IPHONE_6_0)
{
  //blocks
} else 
{
//oldstyle
}

OS のバージョンを確認したら、次の移行手順に従ってください。

  1. アプリの 4 インチの起動イメージを設定します。これにより、1136 ピクセルの画面の高さが得られます (これがないと、上下に黒い余白がある 960 ピクセルになります)。
  2. 自動サイズ変更マスクを適切に設定していれば、すべてが魔法のように機能するはずなので、アプリをテストします。
  3. そうでない場合は、適切な自動サイズ変更マスクを使用してビュー レイアウトを調整するか、今後 iOS 6 のみをサポートする場合は自動レイアウトを調べてください。
    1. 特に大きな画面のために何かしなければならないことがある場合は、[[UIScreen mainScreen] 境界] (または applicationFrame ですが、存在する場合はステータスバーの高さを考慮する必要があります) の高さを確認する必要があるようです。そのための特定のAPIではないようです。

例:

CGRect screenBounds = [[UIScreen mainScreen] bounds];
if (screenBounds.size.height == 568) {
 // code for 4-inch screen
}else{
 // code for 3.5-inch screen
}

ありがとう。

于 2012-10-04T12:23:56.530 に答える