2010-11-23 4 views
6

OK, entonces estoy aprendiendo a usar UIScrollView en el constructor de interfaces. dado que scrollView en sí mismo no tiene ningún contenido, creé otra vista, contentView, para contener mis controles y contenido desplazable. en esta vista coloco controles, etiquetas, etc. y luego, en mi código, configuro el tamaño del contenido del scrollView al tamaño de este contentView.¿Cómo trabajo en una vista más alta en el constructor de interfaz?

Mi pregunta parece asombrosamente simple y tan obvia que me he perdido algo en alguna parte. cuando creé este XIB en IB obtuve su ventana de interfaz de iPhone vacía estándar. Dejé caer una vista de desplazamiento encima, tomó toda la ventana. Dejé una vista encima de eso, tomó toda la vista de desplazamiento. Agregué algunos controles, que hasta ahora todavía puedo ver dentro del rectángulo de ContentView en IB.

Mi pregunta es ¿cómo trabajo/agrego los controles que se encuentran fuera de de la parte visible del contenidoView en IB? LOL. parece tan simple, pero simplemente no lo entiendo. Puedo establecer el alto de la vista de contenido o arrastrar el rectángulo a lo que prefiera (y de hecho este es el punto de tener una vista de desplazamiento) pero la ventana de IU fija de IB no se expandirá, así que puedo ver la parte "fuera de pantalla" de contentView para agregar más controles. Es como si hubiera sido arreglado en ese tamaño porque es del tamaño de una pantalla de iPhone y no me permitirá hacerlo más grande/más alto.

¿Qué hice mal?

-a

+0

es molesto que no puede ver la parte fuera de la pantalla simulada, se puede establecer marcos manualmente y estarán fuera de la pantalla pero no puedes verlos, realmente no he intentado resolver este problema, pero no parece ser algo obvio, si es que puede hacerse. – Daniel

+0

@Daniel - ver la respuesta aceptada a continuación. una vez que apaga todos los elementos de UI simulados, puede hacer que la vista sea tan alta como desee. obviamente, si vas a hacer que sea más alto que una pantalla en el iPhone, tendrás que ponerlo en ScrollView –

Respuesta

12

Debe desactivar todos los elementos simulados de la interfaz de usuario (como la barra de estado) para que sean "indefinidos" excepto el tamaño, que seleccione como "Forma libre" del menú desplegable, y luego puede establecer la vista altura usando la pestaña Regla para que sea lo que quieras.

Por ejemplo, aquí he seleccionado un controlador de vista de fotos, y establecí el tamaño en la barra lateral derecha para que sea "Pantalla completa de iPad", pero también pude cambiar eso a "altura libre" para establecer la altura que desee .

Selecting VC in interface builder

Custom size set

+0

Ese es el truco que estaba buscando. Gracias Kendall! –

+0

Con las versiones más nuevas de Xcode, se usa el término "Forma libre" en su lugar. – ThomasW

+0

Gracias @ThomasW, actualizará la respuesta. –

1

Usted no tiene que crear una vista para colocar en el interior del ScrollView si no quiere. En tu caso, parece que no tiene mucho sentido.

En cuanto a la segunda parte de su pregunta, puede colocar elementos directamente en la vista de desplazamiento (es una vista después de todo), como subvistas. Si desea que estén fuera de la pantalla, simplemente configure su marco para que esté en esas coordenadas x, y particulares en las que desea que esté. Deberá asegurarse de que la propiedad contentSize de scrollview sea lo suficientemente grande como para alojar todo su contenido, esto es lo que permite desplazarse horizontal/verticalmente.

0

Probablemente desee utilizar los elementos fuera de pantalla programáticamente en lugar de utilizar xibs.

2

mente. arrastra la vista de contenido hacia arriba para que algunos controles estén fuera de la pantalla y luego agregue más controles/expandir a la parte que acaba de hacer visible moviendo las cosas superiores de la parte superior. en efecto, desplaza físicamente la ContentView en IB arrastrándola con el mouse. parece un poco contradictorio, pero lo que sea.

3

primero Añadir un ViewController de cualquier manera que prefiera. Luego, en el generador de interfaz, haga clic en el ícono del controlador de vista (a la izquierda). En el inspector de conexiones, haga clic en el icono de la regla "Mostrar el inspector de tamaño". Habrá una lista de opciones para el tamaño simulado, cambie a "Forma libre" y aumente la altura al tamaño que desee. Espero que esto ayude.

1

Establecer el tamaño de FreeForm para el controlador vistas a un tamaño suficientemente grande que se puede agregar en sus controles

enter image description here

Cuestiones relacionadas