Конвертировать iPhone xib в iPad xib? - PullRequest
75 голосов
/ 21 марта 2010

Как ты это делаешь? Я видел один видеоурок, но экран был слишком маленьким. Кроме того, помимо изменения размера просмотра, есть ли какие-либо другие важные изменения, которые я должен был бы внести в приложения для iphone, чтобы конвертировать в iPad?

Ответы [ 16 ]

159 голосов
/ 19 октября 2011

Я смог сузить это до нескольких вещей, поэтому вот шаги, которые работали для меня:

1) Сделайте копию xib-файла iPhone и добавьте его в свой проект

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) Сохраните файл и откройте как> Интерфейсный Разработчик - iOS

Файл все еще может выглядеть как обычный iPhone Xib, но для меня, как только я изменил строку состояния на «Черный» в инспекторе атрибутов, остальная часть XIB просто «привязалась» к iPad iPad Xib

33 голосов
/ 29 сентября 2013

В 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">

Обратите внимание, что мы просто добавляем .iPad в свойства * type и targetRuntime.

После открытия просто выберите новый размер для настройки. Пример: iPad на весь экран.

29 голосов
/ 21 марта 2010

Предположим, у вас SDK с Xcode 3 ,

  1. Открыть IB.
  2. Откройте XIB.
  3. Файл -> Создать версию iPad с использованием масок авторазмера.
22 голосов
/ 04 июня 2011

XCode4:

В xcode 4 мы не можем сделать это для одного xib, но мы можем создать соответствующие версии ipad сразу.

Перед настройкой проекта на ipad, когда он настроен только для iphone, щелкните правой кнопкой мыши на цели и выберите дубликат.

Теперь выберите «дублировать и перейти на ipad». Новая цель и новый набор xibs созданы. Это должно уменьшить некоторую работу.

Надеюсь, это поможет.

14 голосов
/ 04 апреля 2011

Xcode 4 :

Создание версии для iPad с использованием автоматически меняющихся масок * Функция 1006 * была удалена из Xcode 4. Сейчас самый простой способ - использовать Xcode 3преобразование, поскольку формат файла nib (.xib) не изменился.

Xcode 3 и 4 теперь можно установить в одной системе, просто выбрав другую папку (см. инструкции по установке на образе диска).

В противном случае вам потребуется скопировать / вставить элементы пользовательского интерфейса из версии для iPhone и заново связать их с вашим кодом.

6 голосов
/ 05 октября 2012

Как насчет того, чтобы позволить компьютеру выполнять работу компьютера?
Быстрее, меньше риск ошибок.

Вот рабочий процесс, основанный на превосходном ответе от Jag , но автоматизированный с помощью sed.

Сначала давайте настроим некоторые вещи. Нам нужно будет сделать это только один раз.
В каталоге, содержащем ваши XIB, создайте два файла со следующим содержимым:

Файл 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, введите в терминал одну из двух следующих команд:

Преобразование iPhone в iPad:

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

Преобразование iPad в iPhone:

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





Просто для удовольствия, давайте создадим две функции в zsh, чтобы сделать преобразование еще более простым:

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
5 голосов
/ 04 июля 2011

Откройте XIB в XCode 4, используя «просмотр в качестве исходного кода».

До

Резервное копирование рассматриваемого пера.

Один

Заменить эту слизь

    <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, удалите его, а затем нажмите «Отменить».

Три

Затем окунитесь в горячую воду, чтобы стереть это отвратительное чувство, которое у вас может возникнуть.

4 голосов
/ 31 мая 2011

Вы можете открыть XIB как текстовый файл и изменить размер UIView:

Щелкните правой кнопкой мыши по файлу XIB в навигаторе и выберите «открыть как ...» Открыть как исходный файл.

Найдите ссылку на UIView и измените значения фрейма:

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

<string key="NSFrame">{{0, 20}, {768, 1024}}</string>
3 голосов
/ 01 мая 2014

Xcode 5 update

targetRuntime = "iOS.CocoaTouch"

до

targetRuntime = "iOS.CocoaTouch.iPad"

3 голосов
/ 27 апреля 2012

В 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

...