web-dev-qa-db-ja.com

iPhone xibをiPad xibに変換しますか?

どうやってやるの?ビデオチュートリアルを見ましたが、画面が小さすぎました。また、ビューのサイズを変更する以外に、iPadに変換するためにiPhoneアプリに加えなければならない他の大きな変更はありますか?

75
NextRev

あなたがSDKを持っていると仮定しますwith Xcode

  1. IBを開きます。
  2. XIBを開きます。
  3. ファイル->自動サイズ変更マスクを使用してiPadバージョンを作成します。
29
kennytm

私はそれをいくつかのものに絞り込むことができたので、ここで私のために働いた手順は次のとおりです:

1)iPhone xibファイルのコピーを作成し、プロジェクトに追加します

2)ファイル(xcode)を右クリックし、[名前を付けて開く]> [ソースコード]

3)2行目は次のようになります。

<archive type="com.Apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">

と置換する:

<archive type="com.Apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">

4)「IBCocoaTouchFramework」を検索し、すべての出現箇所を「IBIPadFramework」に置き換えます

5)ファイルを保存し、名前を付けて開く> Interface Builder-iOS

ファイルは通常のiPhone xibのように見えますが、私にとっては、属性インスペクターでステータスバーを「ブラック」に変更すると、残りのxibはiPad xibに「スナップ」されます

159
Jag

Xcode 5では、次のことを行う必要があります。

見つける:

<document type="com.Apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4510" systemVersion="12F37" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">

置換:

<document type="com.Apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="4510" systemVersion="12F37" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none">

typeプロパティとtargetRuntimeプロパティに。iPadを追加していることに注意してください。

開いた後、調整する新しいサイズを選択します。例:iPadフルスクリーン。

33
SebastianView

XCode4:

Xcode 4では、単一のxibに対してこれを行うことはできませんが、それぞれのiPadバージョンを一度に作成できます。

プロジェクトをipadに設定する前に、iphoneのみに設定されている場合は、ターゲットを右クリックし、複製をクリックします。

「複製してiPadに移行」を選択します。新しいターゲットと新しいxibのセットが作成されます。

それが役に立てば幸い。

22
Tejesh Alimilli

Xcode 4

自動サイズ変更マスクを使用してiPadバージョンを作成する機能はXcode 4から削除されました。現在、最も簡単な方法はXcode 3を変換に使用することです。 (.xib)ファイル形式は変更されていません。

Xcode 3と4は、異なるフォルダを選択するだけで同じシステムにインストールできるようになりました(ディスクイメージのインストール手順を参照)。

それ以外の場合は、iPhoneバージョンからUI要素をコピーして貼り付け、コードに再リンクする必要があります。

14
antalkerekes

コンピューターにコンピューターの仕事をさせるのはどうですか?
より速く、エラーのリスクが少なくなります。

Jagからの優れた回答 に基づいたワークフローですが、sedで自動化されています。

まず、いくつかのものをセットアップしましょう。これを行う必要があるのは一度だけです。
XIBを含むディレクトリで、次のコンテンツを含む2つのファイルを作成します。

ファイルiPhoneToiPadXIBConversion.sed

s/com.Apple.InterfaceBuilder3.CocoaTouch.XIB/com.Apple.InterfaceBuilder3.CocoaTouch.iPad.XIB/g
s/IBCocoaTouchFramework/IBIPadFramework/g

およびファイルiPadToiPhoneXIBConversion.sed

s/com.Apple.InterfaceBuilder3.CocoaTouch.iPad.XIB/com.Apple.InterfaceBuilder3.CocoaTouch.XIB/g
s/IBIPadFramework/IBCocoaTouchFramework/g


セットアップが完了しました。 XIBを変換するには、ターミナルで次の2つのコマンドのいずれかを入力します。

iPhoneからiPadへの変換:

sed -f iPhoneToiPadXIBConversion.sed  MyViewController~iphone.xib  > MyViewController.xib

iPadからiPhoneへの変換:

sed -f iPadToiPhoneXIBConversion.sed  MyViewController.xib  > MyViewController~iphone.xib





楽しみのために、zshで2つの関数を作成して、変換をさらに簡単にします。

function convertiPadXIBToiPhone () {
    newXibName=`echo "$1" | /usr/bin/sed "s/.xib/~iphone.xib/"`
    `/usr/bin/sed -f iPadToiPhoneXIBConversion.sed "$1" > "$newXibName"`
    echo "Did convert $1 to $newXibName."
}

function convertiPhoneXIBToiPad () {
    newXibName=`echo "$1" | /usr/bin/sed "s/~iphone.xib/.xib/"`
    `/usr/bin/sed -f iPhoneToiPadXIBConversion.sed "$1" > "$newXibName"`
    echo "Did convert $1 to $newXibName."
}

これをzsh構成に追加した後、XIBの変換は次のように簡単です:

convertiPadXIBToiPhone MyViewController.xib

または

convertiPhoneXIBToiPad MyViewController.xib
6
Guillaume

「ソースコードとして表示」を使用して、XCode 4でXIBを開きます。

問題のペン先をバックアップします。

1

このグーを置き換える

    <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
    <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
        <string key="NS.key.0">com.Apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
        <integer value="1056" key="NS.object.0"/>
    </object>
    <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
        <string key="NS.key.0">com.Apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
        <integer value="3100" key="NS.object.0"/>
    </object>
    <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
    <int key="IBDocument.defaultPropertyAccessControl">3</int>
    <string key="IBCocoaTouchPluginVersion">301</string>

この他のグーのために

    <string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
    <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
        <string key="NS.key.0">com.Apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
        <integer value="3100" key="NS.object.0"/>
    </object>
    <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
    <int key="IBDocument.defaultPropertyAccessControl">3</int>
    <string key="IBCocoaTouchPluginVersion">301</string>

次に、統合IBを使用するペン先の各ビューについて、それを削除してから元に戻すを押します。

その後、お湯でシャワーを浴びて、あなたが持っているかもしれない嫌な気持ちを拭き取ってください。

5
Dan Rosenstark

XIBをテキストファイルとして開き、UIViewサイズを変更できます。

ナビゲータでXIBファイルを右クリックし、「...として開く」を選択します。ソースファイルとして開きます。

UIView参照を見つけて、フレーム値を変更します。

<object class="IBUIView" id="191373211">

<string key="NSFrame">{{0, 20}, {768, 1024}}</string>
4
wasigh

XCode 4.3.2では、xibのiPadバージョンを作成する最も簡単な方法は、そのxibファイルを複製して~ipadファイル名の接尾辞。そして、「myVC.xib」と「myVC〜ipad.xib」の両方をプロジェクトに追加します。 「〜iPad」ではなく「〜ipad」であることに注意してください。アプリはiPadで実行されると、その〜ipadバージョンを自動的に使用します。これは、リソースファイル(画像など)でも機能します。

私が現時点で見つけることができる最高のリファレンス... https://developer.Apple.com/library/ios/#documentation/Cocoa/Conceptual/LoadingResources/ImageSoundResources/ImageSoundResources.html

3
Hlung

Xcode 5アップデート

targetRuntime = "iOS.CocoaTouch"

targetRuntime = "iOS.CocoaTouch.iPad"

3
0oneo

Xcode 4.5で行ったことを文書化します。

  1. fixpattern.sh

    cp REPLACEME_Iphone.h REPLACEME_Ipad.h
    sed -e 's/REPLACEME_Iphone/REPLACEME_Ipad/g' REPLACEME_Ipad.h > REPLACEME_Ipad_tmp.h
    mv REPLACEME_Ipad_tmp.h REPLACEME_Ipad.h
    cp REPLACEME_Iphone.m REPLACEME_Ipad.m
    sed -e 's/REPLACEME_Iphone/REPLACEME_Ipad/g' REPLACEME_Ipad.m > REPLACEME_Ipad_tmp.m
    mv REPLACEME_Ipad_tmp.m REPLACEME_Ipad.m
    cp REPLACEME_Iphone.xib REPLACEME_Ipad.xib
    sed -e 's/com.Apple.InterfaceBuilder3.CocoaTouch.XIB   /com.Apple.InterfaceBuilder3.CocoaTouch.iPad.XIB/g' REPLACEME_Ipad.xib > REPLACEME_Ipad_tmp.xib
    mv REPLACEME_Ipad_tmp.xib REPLACEME_Ipad.xib
    sed -e 's/IBCocoaTouchFramework/IBIPadFramework/g' REPLACEME_Ipad.xib > REPLACEME_Ipad_tmp.xib
    mv REPLACEME_Ipad_tmp.xib REPLACEME_Ipad.xib
    sed -e 's/320, 416/768, 1004/g' REPLACEME_Ipad.xib > REPLACEME_Ipad_tmp.xib
    mv REPLACEME_Ipad_tmp.xib REPLACEME_Ipad.xib
    sed -e 's/REPLACEME_Iphone/REPLACEME_Ipad/g' REPLACEME_Ipad.xib > REPLACEME_Ipad_tmp.xib
    mv REPLACEME_Ipad_tmp.xib REPLACEME_Ipad.xib
    
  2. 変換するファイルのリストをfixfileに作成します。各行は拡張子なしのファイル名になります。元のファイル名がAAA_Iphone.h、単にAAAと入力します。元のファイルがこのパターンでない場合は、スクリプトを修正する必要があります。

  3. コマンドラインで実行

    cat fixfile | while read line ; do sed -e "s/REPLACEME/${line}/g" fixpattern.sh ; done > fixall.sh
    
  4. 確認して実行fixall.sh

  5. 新しく作成したファイルをプロジェクトに追加する

2
user2329407

Jagの答えは素晴らしいです。ただし、Xcode 5でXIBを開いたり作成したりすると、問題が発生します。

Xcode 5の場合

1)iPhone xibファイルのコピーを作成し、プロジェクトに追加します

2)ファイル(xcode)を右クリックし、[名前を付けて開く]> [ソースコード]

3)2行目は次のようになります。

<document type="com.Apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4510"

に変更する

<document type="com.Apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="4510"

4)8行目は次のようになります。

<rect key="frame" x="0.0" y="0.0" width="320" height="480"/>

に変更する

<rect key="frame" x="0.0" y="64" width="768" height="960"/>

以上で、iPad XIBが手に入りました。しかし、それでも本当の信用はJagにかかっています。

2
Evol Gate

Jagの回答に加えて、「320,460」も検索し、768,1024に置き換えます。XIBはiPadのサイズに変更されます。

1

Xcode 4の場合

デバイスごとに個別のターゲットを作成する必要はありません。代わりに、プロジェクトの概要の[デバイス]を[iPhone]にあるユニバーサルに変更できます。これは、Xcode 4.2でiOS 5アプリをユニバーサルに更新するリンクで回答されています。したがって、それはあなたのために移行を行います。

1
aparna
Jag has given Great Answer.

ある場合には。

Ipad XIBでIphone XIBを変換する必要はありません。自動サイズ変更マスクを使用して、Ipadを実行することもできます。適切な自動サイズ変更マスクを使用してユニバーサルモードで実行するようにAPPを構成するだけです。

0
kalpesh jetani

交換するだけ

<document type="com.Apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14854.2" targetRuntime="iOS.CocoaTouch"

<document type="com.Apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="14854.2" targetRuntime="iOS.CocoaTouch.iPad"
0
Tony Pham

最善の解決策のように思えるのは、常に最初にiPhoneとして開発し、完了したらipadターゲットを追加して、Xcodeに更新を行わせることです。同じ間違いをして、ユニバーサルを選択して開始し、最初のいくつかのファイルを作成しましたが、他のすべてのxibはipadフォルダーで手動で再作成する必要がありました。大きな痛み

0
nwestwood