¿Cómo convertir iPhone xib a iPad xib?

¿Cómo lo haces? Vi un video tutorial sobre él, pero la pantalla era demasiado pequeña. Además, aparte de cambiar el tamaño de la vista, ¿hay algún otro cambio importante que deba realizar en mis aplicaciones de iPhone para convertir a iPad?

Supongamos que tiene el SDK con Xcode 3 ,

  1. Abre IB.
  2. Abra el XIB.
  3. Archivo -> Crear versión para iPad usando máscaras de aumento automático.

Pude limitarlo a algunas cosas, así que aquí están los pasos que funcionaron para mí:

1) Haga una copia del archivo xib de iPhone y agréguelo a su proyecto

2) Haga clic con el botón derecho en el archivo (en xcode) y abra como> Código fuente

3) La 2da línea debería verse así:

 

Reemplazar con:

  

4) Busque “IBCocoaTouchFramework” y reemplace todas las instancias con “IBIPadFramework”

5) Guarde el archivo y abra como> Interface Builder – iOS

El archivo aún podría parecerse a un xib iPhone normal, pero para mí, una vez que cambié la Barra de estado a “Negro” en el inspector de Atributos, el rest del xib simplemente se “colocó” en un iPad xib

En Xcode 5 debes simplemente:

Encontrar:

  

Sustituir por:

  

Tenga en cuenta que solo estamos agregando .iPad a las propiedades type y targetRuntime .

Después de abrir simplemente seleccione un nuevo Tamaño para ajustar. Ejemplo: iPad Pantalla completa.

XCode4:

En xcode 4 no podemos hacer eso para un solo xib, pero podemos crear versiones de ipad respectivas al mismo tiempo.

Antes de configurar su proyecto en ipad, cuando está configurado solo para iphone, haga clic derecho en el objective y haga clic en duplicado.

Ahora seleccione “duplicar y transición a ipad”. Se crean un nuevo objective y un nuevo conjunto de xibs. Debe reducir algo de trabajo.

Espero eso ayude.

Xcode 4 :

La función Create iPad Version Using Autosizing Masks se ha eliminado de Xcode 4. En este momento, la forma más fácil es utilizar Xcode 3 para la conversión, ya que el formato de archivo nib (.xib) no cambió.

Xcode 3 & 4 ahora puede instalarse en el mismo sistema simplemente seleccionando una carpeta diferente (consulte las instrucciones de instalación en la imagen del disco).

De lo contrario, deberá copiar / pegar los elementos de la interfaz de usuario de la versión de iPhone y volver a vincularlos a su código.

¿Qué hay de dejar que la computadora haga el trabajo de la computadora?
Más rápido, menos riesgo de errores.

Aquí hay un flujo de trabajo basado en la excelente respuesta de Jag , pero automatizado con sed.

Primero, configuremos algunas cosas. Solo necesitaremos hacer esto una vez.
En el directorio que contiene tus XIB, crea dos archivos con el siguiente contenido:

Archivo iPhoneToiPadXIBConversion.sed :

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

y archivo iPadToiPhoneXIBConversion.sed :

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

La instalación ha finalizado. Para convertir un XIB, ingrese uno de los dos comandos siguientes en el terminal:

Conversión de iPhone a iPad:

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

Conversión de iPad a iPhone:

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


Solo por diversión, creemos dos funciones en zsh, para hacer la conversión aún más simple:

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

Después de haber agregado esto a su configuración de zsh, convertir un XIB es un simple como:

 convertiPadXIBToiPhone MyViewController.xib 

o

 convertiPhoneXIBToiPad MyViewController.xib 

Abra el XIB en XCode 4 usando “ver como código fuente”.

antes de

Haga una copia de seguridad del plumín en cuestión.

Uno

Sustituir esta sustancia

  IBCocoaTouchFramework  com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS    com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3   YES 3 301 

para este otro goo

  IBIPadFramework  com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3   YES 3 301 

Dos

Luego, para cada vista en la punta utilizando el IB integrado, elimínelo y luego presione Deshacer.

Tres

Luego dúchese en agua caliente para eliminar esa desagradable sensación que pueda tener.

Puede abrir el XIB como archivo de texto y cambiar el tamaño de UIView:

Haga clic derecho en su archivo XIB en el navegador y seleccione: “abrir como …” Abrir como archivo fuente.

Encuentre la referencia de UIView y cambie los valores de Marco:

  {{0, 20}, {768, 1024}} 

En XCode 4.3.2, la forma más fácil para mí de crear una versión para iPad de xib es duplicar ese archivo xib y agregar el sufijo ~ipad al nombre del archivo. Y agregue tanto “myVC.xib” como “myVC ~ ipad.xib” en su proyecto. Tenga en cuenta que es “~ ipad” NO “~ iPad”. Su aplicación usará esa ~ versión de iPad automáticamente cuando se ejecute en iPad. Esto también funciona con archivos de recursos (por ejemplo, imágenes).

La mejor referencia que pude encontrar en este momento … https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/LoadingResources/ImageSoundResources/ImageSoundResources.html

Actualización de Xcode 5

targetRuntime = “iOS.CocoaTouch”

a

targetRuntime = “iOS.CocoaTouch.iPad”

Documentaré lo que hice en 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. Cree una lista de archivo que desea convertir en fixfile de fixfile , cada línea será un nombre de archivo sin extensión. Si su nombre de archivo original es AAA_Iphone.h , simplemente ponga AAA . Si su archivo original no es de este patrón, necesita revisar el script.

  3. Ejecutar en línea de comando

     cat fixfile | while read line ; do sed -e "s/REPLACEME/${line}/g" fixpattern.sh ; done > fixall.sh 
  4. Revisa y ejecuta fixall.sh

  5. Agregar archivo recién creado al proyecto

La respuesta de Jag es genial. Pero hay una trampa si se abre / crea un XIB en Xcode 5.

Para Xcode 5

1) Haga una copia del archivo xib de iPhone y agréguelo a su proyecto

2) Haga clic con el botón derecho en el archivo (en xcode) y abra como> Código fuente

3) La 2da línea debería verse así:

  

cambiarlo a

  

4) La octava línea debería verse así:

  

cambiarlo a

  

Eso es todo y ahí tienes iPad XIB. Pero aún así, el verdadero mérito es para Jag.

Además de la respuesta dada por Jag, también busque “320,460” y reemplácela con 768,1024 y su XIB se redimensionará a las dimensiones del iPad.

Para Xcode 4,

No necesita crear un objective separado para cada dispositivo. En su lugar, puede cambiar los dispositivos en el resumen del proyecto a Universal, que ya estaría en el iPhone. Esto se responde en el enlace Actualización de la aplicación iOS 5 a Universal en Xcode 4.2. Por lo tanto, hará la transición por ti.

Parece que la mejor solución es desarrollarse siempre como iPhone primero, luego, una vez que esté completo, agregue el objective ipad, permitiendo que xcode haga la actualización. Cometí el mismo error, seleccionado universal para comenzar, que crea los primeros pocos archivos, pero luego todos los demás xib tuvieron que ser recreados a mano en la carpeta ipad. Dolor grande

 Jag has given Great Answer. 

En algunos casos.

No es necesario convertir su Iphone XIB en Ipad XIB. Puede usar Autoresizingmask y obtener Running Ipad también. solo necesita configurar su APLICACIÓN para que se ejecute en modo Universal con la máscara de autoresizing adecuada.