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

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

Ответы [ 16 ]

2 голосов
/ 01 ноября 2013

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

Для Xcode 5

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

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 голосов
/ 28 апреля 2013

Я документирую, что я сделал в 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. Добавить вновь созданный файл в проект

1 голос
/ 05 апреля 2013

Для Xcode 4,

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

1 голос
/ 18 сентября 2012

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

0 голосов
/ 01 марта 2013
Jag has given Great Answer.

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

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

0 голосов
/ 24 сентября 2011

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

...