¿Cuál es la diferencia entre un archivo .xib y un .storyboard?

159

¿Alguien puede explicar en palabras simples la diferencia entre .xib y .storyboard?

George Sachpatzidis
fuente
No tengo idea de qué es una .timeline, y sospecho que no tiene nada que ver con la línea de tiempo de Facebook a la que se refiere la etiqueta
iandotkelly
1
son estas dos preguntas completamente separadas, George? Además, cuando dices .timeline, ¿estás hablando de versiones de un archivo guardado ?
Michael Dautermann
Tenías dos preguntas separadas aquí, así que lo refiné en una sola. La primera pregunta se ha hecho varias veces aquí, como en No se puede encontrar una aplicación basada en ventanas en XCode , por lo que eliminé esa parte para centrarme en la pregunta de Storyboarding.
Brad Larson
1
Consulte también esta pregunta similar, Cuándo usar Storyboard y cuándo usar XIB . Tiene excelentes respuestas detalladas que incluyen actualizaciones para iOS 8 y Xcode 6.
Basil Bourque

Respuestas:

115

Apple introdujo el concepto de "storyboarding"SDK en iOS5 para simplificar y administrar mejor las pantallas en su aplicación. Todavía puedes usar el .xibcamino del desarrollo.

Pre-storyboard, cada uno UIViewControllertenía un asociado .xibcon él. Storyboardlogra dos cosas:

  1. .storyboardes esencialmente un solo archivo para todas sus pantallas en la aplicación y muestra el flujo de las pantallas. Puede agregar segues/ transiciones entre pantallas, de esta manera. Por lo tanto, esto minimiza el código repetitivo requerido para administrar múltiples pantallas.

  2. Minimiza el número total de archivos en una aplicación.

Puede evitar el uso Storyboardal crear un nuevo proyecto dejando la opción "Usar Storyboard" sin marcar.

Puede consultar este tutorial para comenzar.

Sagar Hatekar
fuente
55
Entonces, ¿el storyboard reemplaza la necesidad de archivos .xib?
William Sham
16
Idealmente, si. 1 .storyboard file = 'n' no. de archivos .xib.
Sagar Hatekar
2
¿Pero qué pasa con las transiciones entre vistas? Sé que hay segues, pero solo hay unos pocos estilos diferentes de segues. Supongo que aún puede hacer la transición entre las vistas de la misma manera que antes, pero si no está utilizando una segue, se vería raro en el guión gráfico, ¿verdad? ¿Qué piensas sobre eso?
dontangg
1
En ese caso, ¿creo que los NavigationControllers entrarían en juego?
Sagar Hatekar
Dato
curioso
22

Sí, aún puede crear una aplicación basada en Windows para iOS 5. Si usa la plantilla "proyecto vacío", verá que se crea una ventana para usted en el delegado de la aplicación. Desde allí, puede agregar archivos XIB de forma normal o un nuevo guión gráfico.

Supongo que te refieres a "guiones gráficos" en lugar de "línea de tiempo". Los guiones gráficos le permiten trazar, visualmente, todas las vistas en sus aplicaciones y cómo se interrelacionan. Si recién está comenzando con los guiones gráficos, hay una introducción a los guiones gráficos en los videos de WWDC 2011 aquí . El curso 2011 Stanford iOS en iTunes-U también es específico para iOS 5 y cubre guiones gráficos y más.

Lana Nathanial
fuente
15

Un guión gráfico es como un lienzo donde coloca todos sus archivos .xib. Ya no tienes ningún .xibs, solo tienes View Controllers directamente en tu lienzo.

robertfiorentino
fuente
2
Posiblemente la respuesta más útil.
Munib
9

Storyboard es una nueva característica disponible desde el lanzamiento de Xcode 4.2. Ofrece una forma completamente nueva para que el desarrollador de iOS cree y diseñe la interfaz de usuario. Antes de la introducción de Storyboard, es especialmente difícil para los principiantes crear una interfaz de navegación (y pestaña). Cada interfaz se almacena en un archivo xib separado. Además, debe escribir código para vincular todas las interfaces y describir cómo funciona la navegación.

Con Storyboards, todas las pantallas se almacenan en un solo archivo. Esto le brinda una descripción conceptual de la representación visual de la aplicación y le muestra cómo están conectadas las pantallas. Xcode proporciona un editor incorporado para diseñar los guiones gráficos. Puede definir la transición (conocida como segues) entre varias pantallas simplemente usando apuntar y hacer clic. Esto no significa que no necesite escribir código para la interfaz de usuario. Pero los Storyboards reducen significativamente la cantidad de código que necesita escribir.

Fuente: http://www.appcoda.com/use-storyboards-to-build-navigation-controller-and-table-view/

mustafa
fuente
2

XIB:

1) Los archivos Xib se usan con una sola UIView.

2) Es muy difícil implementar diseños automáticos complejos en xib.

3) Utiliza más memoria en comparación con el guión gráfico y silencio lento.

4) Es compatible desde iOS5 en adelante

5) Puede hacer localizaciones para diferentes idiomas y países utilizando diferentes XIB.

6) Es difícil usar el mismo Xib para admitir múltiples dispositivos.

Storyboard

1) Puede diseñar todas sus escenas como View Controllers, Nav Controllers, TabBar Controllers, etc. en un solo guión gráfico.

2) Puede usar el diseño automático fácilmente que define las relaciones matemáticas entre elementos que definen su posición y tamaño.

3) Generalmente es rápido y asigna menos memoria.

4) No es compatible antes de iOS 5.

5) Las células "Dinámicas" y "Prototipo" se pueden usar fácilmente.

6) Storyboards mejor para usar para las aplicaciones con una cantidad pequeña a mediana de pantallas.

La mejor respuesta que he visto: Xib Vs Storyboard en iOS

Jitendra Gochhayat
fuente
0

XIB y Storyboard se utilizan para crear interfaces para los usuarios.

Un punto importante es que los xib se usan para crear una sola vista (tiene un único propietario de archivo en la parte superior del archivo xib), pero en el caso de viewcontroller, se pueden agregar varias pantallas y también se puede monitorear su flujo (tiene propietarios de archivos separados).

No_name_untilRecognised
fuente