私が最近行っているのは、デバイスをチェックする必要があるクラスにdefineステートメントを追加することです。これは、任意のグローバルヘッダーファイルでも実行できます。
#define IS_IPHONE (!IS_IPAD)
#define IS_IPAD (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPhone)
ブールテストは、Detect iphone 54"画面からのものです。
bool isiPhone5 = CGSizeEqualToSize([[UIScreen mainScreen] preferredMode].size,CGSizeMake(640, 1136));
if (isiPhone5) {
// Setup For iPhone 5 Screen Size
UIStoryboard *storyBoard;
storyBoard = [UIStoryboard storyboardWithName:@"MyiPhone5StoryboardName" bundle:nil];
UIViewController *initViewController = [storyBoard instantiateInitialViewController];
[self.window setRootViewController:initViewController];
}
これは、すでにストーリーボードを使用していて、プロジェクトがiPhone5デバイスで開始したデフォルトからストーリーボードを変更したい場合にのみうまく機能します。既存の非ストーリーボードプロジェクトでゼロから始める場合は、この方法で行うことができます。
#define IS_IPHONE (!IS_IPAD)
#define IS_IPAD (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPhone)
bool isiPhone5 = CGSizeEqualToSize([[UIScreen mainScreen] preferredMode].size,CGSizeMake(640, 1136));
if (isiPhone5) {
// Load iPhone 5 Storyboard
UIStoryboard *storyBoard;
storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone5" bundle:nil];
UIViewController *initViewController = [storyBoard instantiateInitialViewController];
[self.window setRootViewController:initViewController];
}
else if (IS_IPAD) {
// Load IPAD StoryBoard
UIStoryboard *storyBoard;
storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPad" bundle:nil];
UIViewController *initViewController = [storyBoard instantiateInitialViewController];
[self.window setRootViewController:initViewController];
}
else {
// Load the iPhone 3.5" storyboard
UIStoryboard *storyBoard;
storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
UIViewController *initViewController = [storyBoard instantiateInitialViewController];
[self.window setRootViewController:initViewController];
}
プロジェクトを開始するときは、ストーリーボードでiPhone 3.5 "バージョンをデザインします(ストーリーボードを使用している場合)。そのデザインが完了したら、プロジェクトファイルに移動して、ストーリーボードファイルを見つけます。ストーリーボードファイルは単なるXMLレイアウトファイル。そのファイルを取得して、お気に入りのテキストエディタにロードし、2つのタグを変更できます。
iPhoneをiPadに変換する
- ファイルの先頭で
targetRuntime="iOS.CocoaTouch
「
- への変更
targetRuntime="iOS.CocoaTouch.iPad"
- ファイルの下部にこれが表示される場合があります
<simulatedScreenMetrics key="destination" type="retina4"/>
- これをに変更します
<simulatedScreenMetrics key="destination"/>
最後の項目は、メインのストーリーボードファイルが4インチのiPhone画面用に設定されている場合にのみ表示されます。
ここで重要なのは、既存のプロジェクトにiPhone 5を追加するだけの場合、最初のチェックでデフォルトを上書きし、特別なストーリーボードファイルをロードするだけでよいということです。これにより、iPhone5のコードですべてのオブジェクトを手動でレイアウトする必要がなくなりました。