¿Cómo diseñar UIView independiente fuera de cualquier ViewController en Storyboard?

Me gustaría diseñar una UIView, que sea más grande que un ViewController en Storyboard (iOS 5).

El UIView debe usarse como la subvista de un UIScrollView y, por lo tanto, debe ser más grande que cualquiera de mis ViewControllers existentes. ¿Cómo puedo crear tal UIView en Storyboard y asociarlo con mi UIScrollView?

Me gustaría hacer esto sin archivos xib si es posible.

Gracias!

preguntado el 10 de marzo de 12 a las 16:03

Problema complicado, esto era tan fácil antes de la era de los guiones gráficos. -

3 Respuestas

No veo otra opción que usar xibs, pero no es tan molesto:

//We have file called "View.xib" in our project. It contains one SINGLE view
NSArray *xibContents = [[NSBundle mainBundle] loadNibNamed:@"View" owner:self options:nil];
UIView *view = [xibContents lastObject]; //safer than objectAtIndex:0

[self.scrollview addSubview:view];
self.scrollview.contentSize = view.frame.size; 

Para realizar conexiones IB, puede configurar el filesOwner class en el xib para que sea su viewController, y conéctese como de costumbre.

Respondido 20 Jul 16, 22:07

Es posible que desee echar un vistazo a mi pregunta/respuesta relacionada, con respecto a las decisiones de diseño que pueden justificar eso: stackoverflow.com/questions/11386111/… - KPM

Solución limpia y súper rápida. Muchísimas gracias. - androniennn

Se agregó un archivo .xib independiente que no funciona para el diseño automático. Aunque todo el proyecto es con diseño automático. ¿Cómo aplico el diseño automático con este archivo .xib? - Shah Nilay

Puedes colocar un UIView en su vista de desplazamiento y diseñarlo directamente dentro del viewController de tu scrollView

respondido 10 mar '12, 16:03

Hola Ugur, mi UIView es más grande que ScrollView, por lo que la mayoría de los controles estarían fuera del área visible actualmente. - AlexR

Que xibs puede ser la única solución para diseñarlo en un generador de interfaz: Ugur Kumru

Encontré la manera de editar la vista agregada a la escena (estar en el mismo nivel de jerarquía que ViewController).

lamentablemente es de hackish tipos de acciones. Mi Xcode la versión es Version 4.5.2 (4G2008a). He probado esto en un proyecto real y un nuevo proyecto vacío.

La idea básica es que Xcode tiene la capacidad de editar tales vistas externas, desafortunadamente este modo no se activa directamente.

En el método que encontré, debe tener 2 niveles de jerarquía dentro de su vista externa:

Escena |- VC |- Vista |- Vista externa |- Subvista1 |- Subvista2
  • Luego ve a Document Outline panel
  • encontrar SubView2 en el árbol de tu escena
  • haga doble clic en él

Aparecerá el área de edición y sus coordenadas se guardarán en los datos de usuario del proyecto, por lo que puede moverlo a un lugar más adecuado si lo desea, y la próxima vez que abra el guión gráfico en IB en la máquina, estará allí. Aunque creo que en otras máquinas tendrás que volver a hacerlo (no lo he probado).

Respondido el 07 de diciembre de 12 a las 18:12

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.