¿Cómo diseñar UIView independiente fuera de cualquier ViewController en Storyboard?
Frecuentes
Visto 6,384 veces
10
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!
3 Respuestas
20
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
2
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
1
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 objective-c ios ios5 uiview uiscrollview or haz tu propia pregunta.
Problema complicado, esto era tan fácil antes de la era de los guiones gráficos. - Johannes Lund