iPhone用の.xibファイルをiPad用にする

Filed under iOS SDK, iPadアプリ, Xcode
Tagged as , , ,

ある程度制作したりリリースしたiPhone専用アプリをiPad用でも使えるようにしたいことがあります。
iPhone専用アプリでもiPad上で拡大してくれるのですが、やっぱり専用にリソースを作ったり、UIを変更したいという、つまりUniversalアプリ化したいというとき、ソースコードで生成しているUIはそれなりに対応も出来るのですが、XIBファイルはどのようにすればいいのでしょうか?

今回は、XIBを変更するの手順を下記に書きました。ちょっと面倒ですが、手順を覚えてしまえば迷わずできます。

XIBの複製

まず、xibをコピーします。
[File]メニューから[Duplicate]を選び、XXX~ipad.xib の用に命名します。

【命名の話】

このxibの名前の付け方ですが、適当な名前にし、自分で呼び出す部分も変更することももちろん出来るのですが、“~ipad”とつけると、Xcodeが自動的にiPad用に呼び出してくれます

内部の定義を修正

ファイル◯◯エリアで複製したXXX~ipad.xibを、右クリックし、[Open As]>[Source Code] でテキストとして開きます。

(普通に開くとInterface Builderで開くところを内部のXMLを直接編集できるようになります)
この中身を、下記のように書き換えます。

1. typeの変更

ファイル上部に有る archiveノード の type属性 を、
“com.apple.InterfaceBuilder3.CocoaTouch.XIB”
から、
“com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB”
と置換
します。

2. framework名の変更

ファイル内にある全ての
“IBCocoaTouchFramework”
を、
“IBIPadFramework”.
と置換
します。
“⌘⌥F”で開くパネルで一括置換しましょう。

画面サイズの修正

最後に、画面サイズがiPhone用になっているものを、iPad用に変更します。
ファイル◯◯エリアでXXX-iPad.xibを、右クリックし、[Open As]>[Interface Builder – iOS] で開きます。

一番外側のViewを選び、画面右側の”Attribute inspector”で、一番上にある”Simulated Metrics”の”Size”を、“iPad Full Screen” にします。
以上で、XIBのiPad化は完了です。

おまけ1:UITableViewの背景色が適用されないとき

UITableViewをGroupedで使用したとき、背景色が適用されない問題が発生しました。
この場合、下記のように、backgroundViewをnilにします。

1
[menuList setBackgroundView:nil];

(注意:これはiOS3.2以降で設定できるパラメータです)

おまけ2:initWithNibName:の場合の変更手順

上記で書いた、xibを『自分で呼び出す部分も変更する』コードというのは下記のようになります。

1
2
3
4
5
6
7
8
9
10
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone){
  xxxViewController = [[XxxViewController alloc]
    initWithNibName:@"XxxViewController"
    bundle:nil];
}
else{
  xxxViewController = [[XxxViewController alloc]
    initWithNibName:@"XxxViewController-iPad"
    bundle:nil];
}

(このように書いている場所を探して全て変えるのは面倒ですよね。上記手順で書いたように、”~ipad”とリネームすれば、この分岐コードは必要無いわけです!)

参考情報ソース


[AD]

↓iOS SDKのリファレンスを Kindle Paperwhiteに入れたくてたまらない。。

Kindle Paperwhite Wi-Fi (第5世代)

Kindle Paperwhite Wi-Fi (第5世代)

定価:¥ 7,980

カテゴリ:エレクトロニクス

発売日:2012-11-19


↓あ!これこないだ買った!良書だなーと、思っていたんだけど、Kindleで出ていた!!こっちにすべきだった…。そうすれば、iPadでも読めたのに…。

iOS5プログラミングブック

iOS5プログラミングブック

カテゴリ:Kindle版

発売日:2012-08-23


Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

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