*

iOSプログラミングのキモ(AppDelegate説明 iPhone5以降とiPhone4S以前を画面サイズで判別する )

公開日: : 最終更新日:2014/01/23 Apple, iOS, iPad, iPhone, IT, Objective-C, XCode

iPhone5以降 画面サイズが2パターン(iPhone6ではさらに増えるかも・・(^^;))になったため プログラムでも複数の画面に対応する必要が出てきました。画面のレイアウトはXCodeのインターフェイスビルダーを使うことで 異なる画面サイズの ストーリーボード もしくは XIBファイルで対応します。QTubeでは 以下のように画面の縦サイズを使って 使用するストーリーボードを使い分けています。

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    if(self.window.frame.size.height > 480)
        self.isRetina4 = YES;
    else
        self.isRetina4 = NO;

    storyboard_ = nil;
    if (self.isRetina4) {
        storyboard_ = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]];
    }else{
        storyboard_ = [UIStoryboard storyboardWithName:@"MainStoryboard_retina3" bundle:[NSBundle mainBundle]];
    }
    self.window.rootViewController = [storyboard_ instantiateInitialViewController];

画面のサイズは 1行目で得た UIWindowインスタンスのフレームサイズから得ることが出来ます(2行目) iPhone4S以前は画面の縦サイズが480ピクセルなので isRetina4変数をNOにセットし、480ピクセルより大きい場合は isRetina4変数はYESをセットします。isRetina4変数は 他のビューコントローラでも呼べるように外部参照出来るようになっています。8行目と10行目で 実際に読み込むストーリーボードを区別してインスタンス化しています。

最後に 最初の画面制御を担当する rootViewController を [storyboard_ instantiateInitialViewController] を使って取り出します。

画面のサイズ別の制御を ストーリーボード側に任せたことで プログラム自体はずいぶんスッキリした内容になりました。インターフェイスビルダーを上手く使って複数の画面に対応していきましょう。

関連記事

iOSプログラミングのキモ(iOS7から使えるようになったマルチタスク機能、NSURLSessionUploadTask の困った現象)

このブログでも度々書いてきたFileQ iOS版ですが、今月末に Appleに申請できそうな

記事を読む

FileQ iOS版を開発しようと思った理由

私の会社では FileQというファイル転送サービスを 2008年3月末から始めています、かれこれ6年

記事を読む

iOSプログラミングのキモ(MainViewController説明 : dispatch_asyncとブロック構文を使った 今どきのお手軽マルチスレッドプログラミング)

TwitterやYouTubeといったサービスでは、コンテンツの見出しにサムネイルが付加されることが

記事を読む

iOSプログラミングのキモ(MainViewController説明)

個別の画面のコードについて解説を進めていきます。最初は起動直後の画面であるMainViewContr

記事を読む

iOSプログラミングのキモ(サードパーティ製ライブラリをサクッと入れるcocoapods)

iOSプログラミングでは 便利なライブラリがたくさんあります。特にUI系のライブラリは豊富で自分で作

記事を読む

iOSプログラミングのキモ(複雑な画面を複数のViewControllerで制御する その2)

先週は、複数のViewControllerで1つの画面を構成する話のうち、親ViewControll

記事を読む

iOSプログラミングのキモ(AppDelegate説明 デバッグをやりやすくするための工夫:NSSetUncaughtExceptionHandler )

デバッグはプログラミングを進めていく上で避ける事が出来ません。どうしてもバグは入ってきます。重要なの

記事を読む

iOSプログラミングのキモ(デバッグをやりやすくするための工夫:Debug.hのインクルード )

前回 紹介した Debug.h は、使う際 以下のようにソースファイル(ここでは拡張子が m のもの

記事を読む

iOSプログラミングのキモ(拡張子がpchというファイルの役目)

XCodeで プロジェクトを作成すると、-prefix.pch というファイルができています。このフ

記事を読む

iOSプログラミングのキモ(iOS7から使えるようになったマルチタスク機能、NSURLSessionはこう使え!)

今日はQTubeのソースに関する話題ではなく、現在開発中のアプリで使っているNSURLSession

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

FileQ Hosting 月額99円 容量1GB


サイト管理 Mezzanine
Django上で動くCMS Mezzanine 用のモジュールを作ってみる その1

Django上で動くCMS Mezzanine上で動く、モジュールを作

ホーム Mezzanine
Django上で動くCMS Mezzanine を インストールする MacOSX Yesemite 編

Mezzanineは Django WEBフレームワーク上で動くCMS

EclipseにGWT(Google Web Toolkit) Plugin for Eclipseを入れようとしてハマった

最近PHPでちょっとした業務システムを作りました。業務システムの特徴と

ブログを半年やった成果を Google Analytics から眺める

今年の1月からブログを書き始め、そろそろ半年が経とうとしています。

母校で特別 講義をやってきました。

少し 間が空いてしまいました(^_^;) ちょっと前になりますが

→もっと見る

mautic is open source marketing automation
PAGE TOP ↑