Tengo una iPhone
aplicación que tiene un guión gráfico. Ahora quiero proporcionar una iPad
aplicación también. Entonces, me pregunté si hay una función que me ayude a convertir mi iPhone
guión gráfico en un iPad
guión gráfico.
Ser especifico:
¿Existe una función similar o solo existe la forma manual?
Respuestas:
Encontré un tipo de solución:
Duplica tu Storyboard de iPhone y renómbralo
MainStoryboard_iPad.storyboard
Cierre Xcode y luego abra este archivo con cualquier editor de texto.
Busque
targetRuntime="iOS.CocoaTouch"
y cámbielo atargetRuntime="iOS.CocoaTouch.iPad"
Cambie el código en MainStoryboard_iPad.storyboard de:
<simulatedScreenMetrics key="destination" type="retina4"/>
a<simulatedScreenMetrics key="destination"/>
Ahora guarde todo y vuelva a abrir Xcode. El iPad-Storyboard tiene el mismo contenido que el archivo de iPhone, pero todo podría desorganizarse.
Esto me salvó horas, espero que esto te ayude
fuente
start a bounty
debajo de la pregunta, seleccione la cantidad deseada yReward existing answer
...<simulatedScreenMetrics key="destination" type="retina4"/>
a<simulatedScreenMetrics key="destination"/>
Si hubiera creado un proyecto universal, de forma predeterminada se habría creado un guión gráfico de iPad vacío, solo tiene que seleccionar el guión gráfico de iPhone, seleccionar todo (Comando + A), copiar (Comando + C) y pegarlo en el guión gráfico del iPad. Asegúrese de mover el punto de entrada del guión gráfico vacío al guión gráfico recién copiado antes de compilar.
fuente
Eso no funcionó para mí. Hice algo un poco diferente.
<scenes> <!--Contents View Controller-->
</class> </classes>
Eso funcionó para mí. Obtuve un nuevo diseño con todos mis enchufes conectados, lo que solo me ahorró algunas horas.
fuente
.storyboard
archivos y haga clicOpen As > Source Code
para ver el XML sin procesar.Al leer muchos hilos en stackoverflow descubrí que la solución es-
1. Duplique su iPhone-Storyboard y cámbiele el nombre a MainStoryboard_iPad.storyboard
2. Haga clic derecho en el guión gráfico -> "abrir como" -> "Código fuente".
3.Busque targetRuntime = "iOS.CocoaTouch" y cámbielo a targetRuntime = "iOS.CocoaTouch.iPad"
5. Busque
<simulatedScreenMetrics key="destination" type="retina4"/>
y cámbielo a<simulatedScreenMetrics key="destination"/>
4.Ahora guarde todo y haga clic derecho en MainStoryboard_iPad.storyboard "abrir como" -> "IOS StoryBoard" 5. También puede que tenga que cambiar sus restricciones. Eso es todo lo que has hecho.
fuente
fuente
1 - Crea tu
"MainStoryboard_iPad.storyboard";
2 - Haz clic derecho sobre ti
"MainStoryboard_iPhone.storyboard"
y "Abrir como -> Código fuente". Copia todo;3- Haz clic derecho sobre ti
"MainStoryboard_iPad.storyboard"
y "Abrir como -> Código fuente". Pega todo. Ahora busque y cambie:targetRuntime="iOS.CocoaTouch" to targetRuntime="iOS.CocoaTouch.iPad"
type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" to type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.iPad.XIB"
4 - Guardar. Ahora vuelva a abrir pero usando el generador de interfaces. Solo tendrá que reorganizar.
Este método también se puede usar para archivos .xib
fuente
Esto va a la inversa, pero pude hacer una selección de todo y copiar en mi storyboard de iPad (~ 35 escenas) y pegarlo en mi storyboard de iPhone. Los tamaños de escena se ajustaron automáticamente. Solo vi dos problemas, tuve que reemplazar UISplitViewController (ya que es solo iPad), y el fondo predeterminado se volvió transparente en lugar de gris (aún trabajando en solucionarlo correctamente, sin configurar manualmente el fondo para todo).
EDITAR: Parece que el fondo predeterminado para UITableView en el inspector de atributos es bastante extraño. Tuve que configurar manualmente el fondo en "Color de fondo de vista de tabla de grupo" para vistas de tabla agrupadas y "Color blanco" para vistas de tabla no agrupadas. Luego se mostró como "Predeterminado" (supongo que luego coincidió con un valor codificado). - En realidad, aún más fácil, cambiar de "Agrupado" a "Estático" y viceversa parece restablecer el color predeterminado.
fuente
Aquí hay algo que me ahorró horas y podría ayudar a aquellos de ustedes con habilidades de Python.
He estado construyendo una aplicación durante los últimos dos meses, enfocada solo en iPad iterando la UX con el equipo.
Hoy se centró en la construcción de la versión para iPhone, seguí los pasos anteriores (¡gracias!), Pero no quería cambiar el tamaño de todos los elementos de la interfaz de usuario de las dimensiones del iPad en el editor visual del guión gráfico.
Así que escribí este pequeño script de Python Jig para escanear a través del archivo del guión gráfico para x, y, ancho, alto y escalar todo en una proporción de 320./768. Entonces me permitió centrarme solo en los ajustes finos.
Copie su storyboard de iPad en un nuevo archivo. (por ejemplo, iPhoneStoryboard.storyboard)
Ejecute el script a continuación con el nombre del archivo del guión gráfico copiado como primer parámetro.
Generará el archivo de salida con el sufijo _adjusted.storyboard (por ejemplo, iPhoneStoryboard.storyboard_adjusted.storyboard)
Espero eso ayude...
fuente
Vaya a su Resumen de destino y cambie los dispositivos a universal, luego baje y configure la versión de ipad en cualquier guión gráfico que desee, incluido uno copiado y renombrado si lo desea.
fuente
Solo como una nota rápida para aquellos que pueden haber tenido mi problema con esto:
Mi problema:
El contenido del guión gráfico se copió muy bien en un nuevo archivo de tablero que agregué. Sin embargo, no pondría cambios en mi iPad aprovisionado. Al notar que tenía que cambiar el guión gráfico designado para el objetivo de compilación (ver imagen), se muestran los cambios.
Publicaría una imagen si tuviera los puntos, pero la configuración se encuentra en:
Navegador de proyectos en el menú de origen del lado izquierdo, destino raíz de la pestaña general del proyecto (panel central), información de implementación (segundo subtítulo), con la pestaña del botón iPad seleccionada.
A partir de ahí, elija su guión gráfico en "interfaz principal".
Gracias por la publicación, espero que esta mención ayude a un inconveniente en alguna parte.
fuente
Solo por diversión, en XCode 5.1 y iOS 7.1 también necesitaba cambiar los valores de "toolVersion" y "systemVersion" a esto:
Sin esto, el nuevo archivo del guión gráfico no se compilaría
fuente
Con las clases de tamaño XCode6 ya no necesita convertir el guión gráfico a iPad. El mismo Storyboard se puede usar tanto para el iPhone como para el iPad, lo que le ahorra mantener dos archivos actualizados.
El guión gráfico resultante es compatible con iOS7 +.
Lea más sobre esto aquí: https://developer.apple.com/library/ios/recipes/xcode_help-IB_adaptive_sizes/chapters/AboutAdaptiveSizeDesign.html#//apple_ref/doc/uid/TP40014436-CH6-SW1
Utilice las clases de tamaño para habilitar un guión gráfico o un archivo xib para trabajar con todos los tamaños de pantalla disponibles. Esto permite que la interfaz de usuario de su aplicación funcione en cualquier dispositivo iOS.
fuente
Para Xcode10
Solo duplicar
Main.storyboard
Luego cambie el nombre de los archivos a
Main_iPad.storyboard
yMain_iPone.storyboard
Establecer nombres apropiados en
.plist
4. Simplemente seleccione el .storyboard adecuado para configurar
fuente
Esta funcionalidad ahora está incorporada. Por ejemplo, si uno cambia la configuración del proyecto en Información de implementación -> Dispositivos desde iPhone a Universal, aparecerá el siguiente cuadro de diálogo:
fuente
Seguí este hilo cuando fui golpeado con el mismo problema ayer. Los pasos que seguí
targetRuntime="iOS.CocoaTouch"
atargetRuntime="iOS.CocoaTouch.iPad"
<simulatedScreenMetrics key="destination" type="retina4"/>
a<simulatedScreenMetrics key="destination"/>
Eso fue todo. Gracias a todos por su ayuda.
fuente
La forma más fácil y confiable de hacer esto es copiar y pegar desde el guión gráfico de su iPad.
Tendrá que cambiar el tamaño, pero puede ser más rápido que recrear todo el guión gráfico.
fuente
Existe una solución realmente simple para las versiones de Xcode que admiten clases de tamaño (probado en Xcode 7, que es la versión actual en el momento de la escritura). Marque la casilla de verificación "usar clases de tamaño" en un archivo de guión gráfico ( Inspector de archivos ), confirme el cuadro de diálogo que aparece. Luego, desmarque esa misma casilla de verificación: Xcode le preguntará si desea usar este guión gráfico con un iPhone o iPad y convertirá las pantallas en él de manera adecuada. No es necesario editar directamente el archivo del guión gráfico . Tanto para iPad como para iPhone, solo copie el mismo guión gráfico y configure uno para iPad y otro para iPhone utilizando el método descrito.
Y antes de que alguien sugiera usar clases de tamaño, aunque son geniales, son menos convenientes para una interfaz de usuario altamente personalizada, como juegos, etc.
fuente
Un enfoque diferente
Agregue un controlador de vista vacío con controlador de navegación en el iPad-Storyboard
Cambie la Clase a la Clase de su primer ViewController usado para iPhone, "fooViewController"
Agregue el Storyboard-Identifier en el iPhone-Storyboard "fooViewController_storyboard_identifier" para el primer ViewController
Vaya a "fooViewController.m"
Añadir bool Bool variable
nibWasLoadForIpad=false
Vaya a
viewDidLoad
Método(Ps. El problema es que los fondos de vista se establecerán en blanco)
fuente
Debería crear un informe de error con Apple. Puede decir que es un duplicado mío (10167030) que ha estado abierto desde septiembre de 2011. Lo frustrante desde mi punto de vista es que la función existía en Xcode 3 ...
fuente
Gracias por las respuestas a todos.
Seguí los pasos anteriores, pero cuando ejecuté la aplicación bajo el simulador o mi iPad, seguía usando el guión gráfico del iPhone.
Por alguna razón, cuando cambié el dispositivo de destino para que fuera Universal en lugar de iPhone, Xcode (v5.0) no actualizó el archivo app-Info.plist para incluir el guión gráfico del iPad, así que tuve que agregar manualmente la siguiente entrada ( usando el editor plist en Xcode):
Nombre base del archivo del guión gráfico principal (iPad) ==> MainStoryboard_iPad
fuente
Solo cambio (además de la respuesta de @tharkay):
y funciona muy bien!
Lo uso en XCode 8.3.3
fuente