[XCODE] iPhoneの画面サイズに合わせて読み込むXib(Nib)を変える方法
こんにちは、@yoheiMuneです。
先日リリースした「EasyPost to Zaim」で実装している内容で、iPhoneの画面サイズに合わせて読み込むXibファイルを切り替える実装をブログに書きたいと思います。

4インチと3.5インチでそれぞれ画面を作る上で、Xibファイルとして以下の2点を用意しました。
「EasyPost to Zaim」では、3.5インチと4.0インチの違いは、プリセットできるカテゴリ/ジャンルの数が違います。それを上記のXibファイルの切替で実現しています。
少しでもご参考になれば幸いです。
最後までご覧頂きましてありがとうございました。
先日リリースした「EasyPost to Zaim」で実装している内容で、iPhoneの画面サイズに合わせて読み込むXibファイルを切り替える実装をブログに書きたいと思います。

iPhoneの画面サイズに合わせて、読み込むXibファイルを変更する
「EasyPost to Zaim」は、Zaimというオンライン家計簿に簡単に出費状況を投稿するアプリで、その投稿機能にこだわって作っています。 こだわりのポイントとしては、1つの画面で操作が完結して、より少ないタップで、より分かりやすいUIで投稿できるようにすることです。 そのため、iPhone5の4インチ端末と、iPhone4S以下の3.5インチ端末では、UIが一部異なる部分があります。4インチと3.5インチでそれぞれ画面を作る上で、Xibファイルとして以下の2点を用意しました。
- FirstViewController_3_5.xib
- FirstViewController_4_0.xib
// 投稿画面のViewControllerの.mファイルにて
// Nibファイルからインスタンスを作る初期化メソッド
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
// スクリーンサイズを取得します
CGRect screenSize = [UIScreen mainScreen].bounds;
if (screenSize.size.height <= 480) {
// 縦幅が小さい場合には、3.5インチ用のXibファイルを指定します
screenType = SCREEN_TYPE_3_5;
nibNameOrNil = @"FirstViewController_3_5";
} else {
// 立て幅が長い場合には、4.0インチ用のXibファイルを指定します。
screenType = SCREEN_TYPE_4_0;
nibNameOrNil = @"FirstViewController_4_0";
}
// Xibファイル名を元に、インスタンスを生成します。
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
self.title = @"toZaim";
}
return self;
}
とこんな感じで、画面サイズに応じて読み込むXibファイルを切り替えることが出来ます。「EasyPost to Zaim」では、3.5インチと4.0インチの違いは、プリセットできるカテゴリ/ジャンルの数が違います。それを上記のXibファイルの切替で実現しています。
最後に
簡単な内容でしたが、画面サイズに合わせたXibファイルの切替の実装内容を紹介させて頂きました。 画面サイズ以外でも色々と応用が出来るかも!少しでもご参考になれば幸いです。
最後までご覧頂きましてありがとうございました。






