2012-01-20 11 views
7

Agregué una vista de desplazamiento con un tamaño de contenido mayor que el tamaño de la pantalla en mi controlador de vista usando el guión gráfico. Por supuesto, el propósito de la vista de desplazamiento es tener un contenido más grande que la vista que lo contiene. Me gustaría agregar botones y etiquetas a la parte inferior de la vista de desplazamiento gráficamente en el guión gráfico, pero no puedo ver esa parte de la vista de desplazamiento. Como llego hasta ahí. Intenté ajustar el tamaño del inspector que me funcionó cuando agregué la vista por primera vez hace unas semanas, pero no me permite cambiar nada.Agregar elementos a la vista de desplazamiento en el guión gráfico (el inspector de tamaño parece estar bloqueado)

Respuesta

13

La única forma en que he podido editar mi contenido en un UIScrollView (y esto se remonta a mucho antes del Guión gráfico, pero estoy bastante seguro de que todavía se aplica) es cambiar el desplazamiento de la xo y de su marco de contenido.

Otra opción, dependiendo de si su vista de contenido es "estática" (construida en .xib) o no, es sacarla de la vista de desplazamiento, y establecerla como la vista de contenido programáticamente en viewDidLoad o algo .

Espero que esto ayude, puedo seguir con ejemplos de código si tiene sentido y los necesita.

EDITAR (2/10/2012): El siguiente es un ejemplo de cómo conectar la visión más grande a la vista de desplazamiento. En este ejemplo, la vista de desplazamiento (scrollView) se establece en la propiedad de vista del controlador de vista. En el .xib también he agregado un UIView llamado largerView. Los dos no están conectados de ninguna manera en el archivo .xib, ambos simplemente aparecen allí.

Dada ...

@property (nonatomic, retain) IBOutlet UIView *largeView; 
@property (nonatomic, retain) IBOutlet UIScrollView *scrollView; 

En viewDidLoad: acabamos ...

// add the largeView to the main scrollView 
[scrollView addSubview:largeView]; 
[scrollView setContentSize:largeView.frame.size]; 

Este es probablemente el ejemplo más simple posible, sin embargo. ¡Buena suerte!

+0

Volví y miré esto de nuevo. Descubrí que la vista de desplazamiento que tiene contenido más grande que la vista en el guión gráfico era la vista de nivel superior del controlador de vista. Cuando se configura así, no puede ajustar el desplazamiento x e y en el inspector de tamaño. Sin embargo, si una uiview es el nivel superior y se coloca la vista de desplazamiento, entonces el desplazamiento de contenido (xey en "ver" en el inspector de tamaño) se puede ajustar exponiendo diferentes áreas de la vista de desplazamiento en el guión gráfico para que puedan ser configurado. ¡Problema resuelto! –

+0

¡Los ejemplos de código serían geniales! :) – whoisgregg

+0

Se agregó un ejemplo de código para conectar una vista a una vista de desplazamiento programáticamente. – livingtech

1

Es genial que haya resuelto eso. Si tuviera ese problema, crearía una vista que tenga el mismo tamaño de fotograma que el tamaño de contenido de la vista de desplazamiento. Agregue todos los controles que necesito (botones, etiquetas, campos de texto, etc.) en esta vista en las posiciones que necesito. Después de eso, simplemente agregué la vista en desplazamiento, hice una IBOutlet del desplazamiento y establecí su tamaño de contenido programáticamente en algún lugar de mi código, antes de usar ese desplazamiento (configurarlo en viewDidLoad estará bien).

Esa es otra solución a este problema.

+0

Me gusta eso también. Lo intentaré la próxima vez que me encuentre en esa situación. –

+0

Esto es lo que sugerí también. – livingtech

1

@ T.J. & @livingtech:

¿Por qué no usar la propiedad de inserción dada en Interface Builder?

Aquí está creando dos puntos de vista (UIView AmpliarVista y UIScrollView ScrollView). Entonces es una pérdida de memoria para los mismos objetos.

enter image description here

  1. Primero agregue más UIView en su punta con su altura y anchura.
  2. Agregue los controles donde lo desee. (Por no decir AmpliarVista solamente)
  3. A continuación, utilice la propiedad embed con ScrollView.(Digamos que myScrollView solamente)
  4. Ahora agregue este myScrollView en la vista original donde quiera que quiera con su altura y anchura a medida.
  5. En la base de código, simplemente configure myScrollView contentSize según el tamaño largeView.

Esto sería más fácil para la reutilización del código y la capacidad de expansión. Si en el futuro necesita agregar más objetos.

+0

No estoy 100% seguro de que te estoy siguiendo aquí, pero creo que esta sigue siendo la misma cantidad de objetos que sugerí. Estoy bastante seguro de que siempre necesitas una 'UIView' para ser la vista de contenido de tu' UIScrollView'. – livingtech

+0

OP no usa una punta. Si T.J. Si pudiera, podía arrastrar una vista de desplazamiento en el lienzo de plumillas, cambiar su tamaño, etc. para que pueda colocar todas las vistas que desee, luego redimensionarlas y agregarlas a la subvista en el código o arrastrarlas hacia atrás como una subvista dentro del plumín utilizando la vista de jerarquía (no puede hacerlo arrastrando y soltando los widgets de vista reales en el lienzo). Sin embargo, esta estrategia no parece funcionar dentro del editor de guiones gráficos. – wkhatch

-1

Puede trabajar en el tamaño de pantalla completa del iPad si su contenido no excede demasiado el tamaño de la pantalla.

Cuestiones relacionadas