2013/06/24更新

[XCODE] iPhoneの画面サイズに合わせて読み込むXib(Nib)を変える方法

このエントリーをはてなブックマークに追加      

こんにちは、@yoheiMuneです。
先日リリースした「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
上記2つの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ファイルの切替の実装内容を紹介させて頂きました。 画面サイズ以外でも色々と応用が出来るかも!
少しでもご参考になれば幸いです。

最後までご覧頂きましてありがとうございました。





こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。