xcode transferir - Conversión de Storyboard de iPhone a iPad





contactos como (18)


Si hubiera creado un proyecto universal, de forma predeterminada se habría creado el guión gráfico vacío del iPad, solo tiene que seleccionar el guión gráfico del iPhone (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.

Tengo una aplicación para iPhone que tiene un guión gráfico. Ahora quiero proporcionar una aplicación de iPad también. Entonces, me pregunté si hay una función que me ayude a convertir mi guión gráfico del iPhone en un guión gráfico del iPad .

Ser especifico:

¿Hay una función similar o solo hay una forma manual?




Vaya a su Resumen de objetivos y cambie los dispositivos a universales, luego baje y configure la versión de ipad para cualquier guión gráfico que desee, incluyendo uno copiado y renombrado si lo desea.




1 - Crea tu "MainStoryboard_iPad.storyboard";

2 - Haga clic derecho en "MainStoryboard_iPhone.storyboard" y "Abrir como -> Código fuente". Copia todo;

3- Haz clic derecho en tu "MainStoryboard_iPad.storyboard" y "Abrir como -> Código fuente". Pega todo. Ahora busca y cambia:

  • 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 vuelve a abrir pero usando el generador de interfaz. Sólo tendrá que volver a organizar.

Este método puede usarse también para archivos .xib




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 la misma casilla de verificación: Xcode le preguntará si desea usar este guión gráfico con un iPhone o iPad, y convierte las pantallas de manera adecuada. No es necesario editar directamente el archivo del guión gráfico . Para iPad y iPhone, simplemente copie el mismo guión gráfico y configure uno para iPad y otro para iPhone usando el método descrito.

Y antes de que alguien sugiera usar clases de tamaño, aunque son excelentes, son menos convenientes para una IU altamente personalizada, como juegos, etc.




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 ha copiado bien en un nuevo archivo de pizarra que agregué. Sin embargo, no pondría cambios a mi iPad aprovisionado. Notando que tuve que cambiar el guión gráfico designado para el objetivo de compilación (ver imagen), deje que se muestren los cambios.

Publico una imagen si tuviera los puntos, pero la configuración se encuentra en:

Navegador del proyecto en el menú de origen del lado izquierdo, objetivo de la raíz de la pestaña general del proyecto (panel central), información del despliegue (segundo subtítulo), con la pestaña del botón iPad seleccionada.

A partir de ahí, elige tu guión gráfico en "interfaz principal".

Gracias por la publicación, espero que esta mención ayude a un obstáculo en algún lugar.




Al leer muchos hilos en descubrí que la solución es:

1. Duplica tu iPhone-Storyboard y renómbrelo 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ámbiela a <simulatedScreenMetrics key="destination"/>

4. Ahora guarde todo y haga clic derecho en MainStoryboard_iPad.storyboard "abrir como" -> "IOS StoryBoard" 5. Es posible que también tenga que cambiar sus restricciones. Eso es todo lo que has hecho.




Para Xcode10

  1. Simplemente duplicar Main.storyboard

  2. Luego renombra los archivos a Main_iPad.storyboard y Main_iPone.storyboard

  3. Establecer nombres apropiados en .plist

4.Sólo tiene que seleccionar el .storyboard adecuado para configurar




Seguí este hilo cuando fui golpeado con el mismo problema ayer. Los pasos que segui

  1. Para Xcode 5.1, tuve que hacer un poco de limpieza del guión gráfico del iPhone, como los reutilizadores perdidos de las celdas de la tabla, proporcionar la identificación del guión gráfico para cada controlador, eliminar las escenas no utilizadas.
  2. Copie MainStoryboard_iPhone.storyboard en MainStoryboard_iPad.storyboard.
  3. Uso de vi editor - cambiado targetRuntime="iOS.CocoaTouch" a targetRuntime="iOS.CocoaTouch.iPad"
  4. Cambie el código en MainStoryboard_iPad.storyboard de: <simulatedScreenMetrics key="destination" type="retina4"/> a <simulatedScreenMetrics key="destination"/>
  5. Abra el proyecto en Xcode.
  6. Cambió los dispositivos de implementación a Universal: elija la opción de NO copiar el Storyboard del iPhone.
  7. Xcode predeterminará el Destino de implementación a 7.1, se hizo cargo de las funciones en desuso.
  8. Para corregir el error de la vista mal colocada en el iPad Storyboard: se modificó el diseño del marco para los controladores que generaban errores.

Eso fue todo ... Gracias a todos por su ayuda ...




Acabo de cambiar (adicionalmente a la respuesta de @tharkay):

 <device id="ipad9_7" orientation="landscape">

y funciona muy bien!

Yo uso esto en XCode 8.3.3




Descubrí una especie de solución:

  1. Duplica tu iPhone-Storyboard y MainStoryboard_iPad.storyboard

  2. Cierre Xcode y luego abra este archivo en cualquier editor de texto.

  3. Busque targetRuntime="iOS.CocoaTouch" y cámbielo a targetRuntime="iOS.CocoaTouch.iPad"

  4. Cambie el código en MainStoryboard_iPad.storyboard desde:

    <simulatedScreenMetrics key="destination" type="retina4"/> to

    <simulatedScreenMetrics key="destination"/>

  5. Ahora guarda todo y vuelve a abrir Xcode. El iPad-Storyboard tiene los mismos contenidos que el archivo de iPhone, pero todo podría estar desordenado.

Esto me ahorró horas - espero que esto te ayude




Usando las Clases de Tamaño XCode6 ya no necesita convertir el guión gráfico al iPad. El mismo Storyboard se puede usar tanto para el iPhone como para el iPad, evitando que tenga 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

Use clases de tamaño para permitir que un guión gráfico o un archivo xib funcione con todos los tamaños de pantalla disponibles. Esto permite que la interfaz de usuario de su aplicación funcione en cualquier dispositivo iOS.




1. Create New Storyboard file with MainStoryboard_iPad.storyboard
2. Copy All the views from MainStoryboard and paste to MainStoryboard_iPad.storyboard



Debe crear un informe de error con Apple. Se 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 característica existía en Xcode 3 ...




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 el iPad que itera el UX con el equipo.

Hoy, centrado en la construcción de la versión para iPhone, seguí los pasos anteriores (¡gracias!) Pero no quería tener que cambiar el tamaño de todos los elementos de la interfaz de usuario desde las dimensiones del iPad en el editor de guión gráfico visual.

Así que escribí este pequeño script de Python Jig para escanear a través del archivo del guión gráfico en busca de x, y, ancho, altura y escala todo por una relación de 320./768. Entonces me permití centrarme en los ajustes finos.

  1. Copia tu guión gráfico en un nuevo archivo. (por ejemplo, iPhoneStoryboard.storyboard)

  2. Ejecute la secuencia de comandos a continuación con el nombre del archivo del guión gráfico copiado como primer parámetro.

  3. Generará el archivo de salida con el sufijo _adjusted.storyboard (por ejemplo, iPhoneStoryboard.storyboard_adjusted.storyboard)

Espero eso ayude...

import re
import sys
import math

afile = sys.argv[1]

scale = 320./768.

number_pattern = '[-0-9]+(.[0-9]+)?'
#width_pattern = 'width="[-0-9]+( ?px)?"'
width_pattern = 'width="[-0-9]+(.[0-9]+)?( ?px)?"'
height_pattern = 'height="[-0-9]+(.[0-9]+)?( ?px)?"'
x_pattern = 'x="[-0-9]+(.[0-9]+)?( ?px)?"'
y_pattern = 'y="[-0-9]+(.[0-9]+)?( ?px)?"'


def replacescaledvalue(scale,pattern,sometext,replacefmt) :
    ip = re.search(pattern, sometext, re.IGNORECASE)
    if(ip) :
        np = re.search(number_pattern,ip.group(0))
        if(np) :
            val = float(np.group(0))
            val = int(math.floor(val*scale))
            sval = replacefmt+str(val)+'"'#+'px"'
            newtext = re.sub(pattern,sval,sometext)
            return newtext
    else :
        return sometext

fin = open(afile)
fout = open(afile+"_adjusted.storyboard", "wt")
for line in fin:
    newline = line
    newline = replacescaledvalue(scale,width_pattern,newline,'width="')
    newline = replacescaledvalue(scale,height_pattern,newline, 'height="')
    newline = replacescaledvalue(scale,x_pattern,newline, 'x="')
    newline = replacescaledvalue(scale,y_pattern,newline, 'y="')
#   print newline
    fout.write( newline )

fin.close()
fout.close()



Gracias por las respuestas a todos.

Seguí los pasos anteriores, pero cuando ejecuté la aplicación bajo el simulador o mi iPad, siguió usando solo el guión gráfico del iPhone.

Por alguna razón, cuando cambié el dispositivo de destino a 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 de la base del archivo del guión principal (iPad) ==> MainStoryboard_iPad




La forma más fácil y confiable de hacer esto es copiar y pegar desde el guión gráfico de su iPad.

  1. Cree un nuevo guión gráfico y asígnele un nombre como MainStoryboard_ipad.
  2. Convierta su aplicación en una aplicación universal estableciendo la propiedad Dispositivos en Universal en la página Resumen de las propiedades de destino para su proyecto.
  3. Abre tu guión gráfico para iPhone y selecciona todo y copia
  4. Abre tu guión gráfico iPad y pégalo.

Tendrá que cambiar el tamaño, pero puede ser más rápido que recrear todo el guión gráfico.




Esto va a la inversa, pero pude seleccionar y copiar todo en el guión gráfico de mi iPad (~ 35 escenas) y pegarlo en el guión gráfico de mi iPhone. Los tamaños de escena se ajustaron automáticamente. Solo vi dos problemas, tuve que reemplazar UISplitViewController (ya que solo es iPad), y el fondo predeterminado se volvió transparente en lugar de gris (aún trabajando para 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 como "Color de fondo de la vista de tabla de grupo" para las vistas de tabla agrupadas y "Color de blanco" para las vistas de tabla no agrupadas. Luego se mostró como "Predeterminado" (supongo que ya que luego coincidió con un valor codificado). - En realidad, aún más fácil, cambiar de "Agrupado" a "Estático" y volver parece restablecer el color predeterminado.




Mi experiencia con esto:

Al crear una nueva aplicación vacía, creará un ícono de la aplicación "predeterminada" / un catálogo de activos de imágenes que está incompleto según lo indicado por @Smick.

La parte molesta de este nuevo "catálogo" es que no muestra los tamaños de las imágenes.

Para solucionar el problema, seleccione el proyecto en el navegador del proyecto, y en "General" verá 2 áreas: Iconos de la aplicación e Iniciar imágenes. Esos apuntan a un catálogo de activos. Puede cambiarlo a "no usar el catálogo de activos". Después de eso, la interfaz cambiará a una lista de archivos / dimensiones.

Sin embargo, hay varios problemas con esta interfaz:

  1. Solo debe solicitar las versiones de la retina de las imágenes (y calcular la normal, o tener dos enlaces, uno para normal y otro para retina).
  2. Es necesario cambiar el nombre de varias imágenes (las de lanzamiento) para que funcionen (el sistema lo hace por usted).
  3. Dos imágenes no se pueden asignar debido a errores (iPad Portrait iOS 7 y iPad Landscape iOS 7, ambas en resolución normal): puede especificar una imagen para ellas, pero la imagen no permanecerá encendida y se eliminará cuando inserte la siguiente imagen.
  4. Las dimensiones de la imagen especificadas son ligeramente diferentes de las indicadas en los manuales HIG.
  5. Tengo una fuerte aversión a la notación "nueva" de imágenes con puntos (ya que dependen del dispositivo y por lo tanto no son exactas).
  6. Si no desea ver que iOS 6 vuelva a aplicar el "resaltado / iluminación" en los iconos, debe agregar una clave en la aplicación (administrador de proyectos | proyecto | información. Allí, puede agregar una clave "El icono ya incluye efectos de brillo ". Es posible que deba agregarlo también en los íconos de iOS 5 si es necesario.




iphone xcode ipad storyboard