Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

  • Откройте IB.
  • Откройте XIB.
  • Файл → Создать версию iPad с использованием автоматических масок.

Ответ 2

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

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

2) Щелкните правой кнопкой мыши файл (в xcode) и выберите Open As > Source Code

3) Вторая строка должна выглядеть так:

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

Файл может по-прежнему выглядеть как обычный iPhone xib, но для меня, как только я изменил строку состояния на "черный" в инспекторе атрибутов, остальная часть xib просто "защелкнулась" в iPad xib

Ответ 3

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

Ответ 4

XCode4:

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

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

Теперь выберите "duplicate and transition to ipad". Создана новая цель и новый набор xib. Он должен уменьшить некоторую работу.

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

Ответ 5

Xcode 4:

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

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

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

Ответ 6

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

Вот рабочий процесс, основанный на отличном ответе от 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

Ответ 7

Откройте XIB в XCode 4, используя "представление как исходный код".

Перед

Создайте резервную копию.

Один

Подставьте этот goo

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

для этого другого goo

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

Два

Затем для каждого вида в nib, используя встроенный IB, удалите его, а затем нажмите "Отменить".

Три

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

Ответ 8

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

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

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

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

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

Ответ 9

В XCode 4.3.2 самый простой способ создать iPad-версию xib - это дублирование этого xib файла и добавление суффикса ~ipad к имени файла. И добавьте в свой проект "myVC.xib" и "myVC ~ ipad.xib". Обратите внимание, что это "~ ipad" НЕ "iPad". Ваше приложение будет использовать эту версию ~ ipad автоматически при запуске на iPad. Это также работает с файлами ресурсов (например, изображениями).

Лучшая ссылка, которую я мог найти на данный момент... https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/LoadingResources/ImageSoundResources/ImageSoundResources.html

Ответ 10

Обновление Xcode 5

targetRuntime = "iOS.CocoaTouch"

к

targetRuntime = "iOS.CocoaTouch.iPad"

Ответ 11

Я буду документировать, что я сделал в Xcode 4.5:

  • 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
    
  • Создайте список файлов, которые вы хотите преобразовать в fixfile, каждая строка будет именем файла без расширения. Если исходное имя файла AAA_Iphone.h, просто поместите AAA. Если ваш исходный файл не относится к этому шаблону, вам необходимо пересмотреть script.

  • Запуск в командной строке

    cat fixfile | while read line ; do sed -e "s/REPLACEME/${line}/g" fixpattern.sh ; done > fixall.sh
    
  • Просмотрите и запустите fixall.sh

  • Добавить вновь созданный файл в проект

Ответ 12

Ответ Jag велик. Но есть уловка, если XIB открывается/создается в Xcode 5.

Для Xcode 5

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

2) Щелкните правой кнопкой мыши файл (в xcode) и выберите Open As > Source Code

3) Вторая строка должна выглядеть так:

<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.

Ответ 13

В дополнение к ответу Jag также найдите "320,460" и замените его на 768,1024, а ваш XIB будет изменен на размеры iPad.

Ответ 14

Для Xcode 4,

Вам не нужно создавать отдельную цель для каждого устройства. Вместо этого вы можете изменить Устройства в сводке проекта на Universal, который уже был в iPhone. На это дается ответ на ссылку Обновление приложения iOS 5 Universal для Xcode 4.2. Таким образом, он сделает переход для вас.

Ответ 15

Похоже, лучшее решение - всегда разрабатывать как первый iphone, а затем, как только вы закончите, добавьте цель ipad, давая xcode сделать обновление. Я сделал ту же ошибку, которую выбрал универсальный, чтобы начать, что создает первые несколько файлов, но затем каждый другой xib должен быть восстановлен вручную в папке ipad. Big PAIN

Ответ 16

Jag has given Great Answer.

В некоторых случаях.

Не нужно конвертировать Iphone XIB в Ipad XIB. Вы можете использовать Autoresizingmask и получить Running Ipad. просто нужно настроить APP для запуска в универсальном режиме с надлежащей маской авторезистировки.

Ответ 17

Просто замените

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