ios - bar - preferslargetitles
Diseño dentro de un scrollview en xcode 4.2 con storyboards (9)
Tengo un uiscrollview de desplazamiento vertical: imagino una página ''acerca de esta aplicación'' de una aplicación de barra de pestañas que funciona un poco y requiere una vista de desplazamiento. Solo contiene algunas imágenes, un video y algo de texto (solo el video se ha codificado, el resto se ha colocado en la GUI). En el guión gráfico (Interface Builder?) Xcode 4.2, todo está configurado como debería y funciona bien, pero la vista es tan grande como lo que se ve en la pantalla, ¿no es posible organizar manualmente en el guión gráfico los elementos que están Inicialmente fuera de la pantalla, ¿para lo que necesitas desplazarte? La única forma que he encontrado hasta ahora es diseñarlos en la vista visible y luego navegar hacia abajo con las teclas de flecha ...
Actualmente estoy desarrollando una aplicación para iOS 7, e hice exactamente como respuesta de @Dickey Singh, pero no funciona al principio. Después de revisar el guión gráfico, descubrí que también debemos agregar Restricciones de diseño automático para el controlador de vista que tiene el scrollView. Parece que tales restricciones de diseño automático se agregarían automáticamente antes de Xcode 5, pero ahora debemos hacerlo nosotros mismos. La forma de agregar restricciones: primero seleccione el controlador de vista en el guión gráfico; Ingrese ''Editor'' en el menú superior; Seleccione la opción ''Resolver problemas de diseño automático''; Seleccione la opción ''Agregar restricciones faltantes en el contenedor''. Hecho :-)
Aquí está mi solución para diseñar un ScrollView con un contenido más grande que la pantalla completamente en Storyboard (bueno, excepto por una sola línea de código :-):
https://.com/a/19476991/1869369
En el guión gráfico, seleccione el viewController y luego, en el inspector de atributos, cambie ''tamaño'' a ''forma libre''. Luego, cambie la ''altura'' de la vista / vista de desplazamiento a la medida que necesite. La configuración predeterminada de los puntales y resortes debe encargarse de cambiar el tamaño de la vista correctamente cuando se ejecuta la aplicación, pero debe verificarla.
En iOS 6.0 puede arrastrar una Vista de contenedor dentro de su Vista de desplazamiento. Esto creará automáticamente una nueva vista para su contenido, fuera de la escena actual. Luego puede cambiar el tamaño de esta vista tan grande como sea necesario para que se ajuste a su contenido.
Creo que aún tendría que establecer la altura del contenido de ScrollView en el tiempo de ejecución, pero al menos puede diseñar su vista de contenido de una vez sin tener que desplazarse hacia arriba y hacia abajo en IB.
He estado luchando con esto por un tiempo, y cada cosa que he intentado ha fallado.
Específicamente, lo que estoy tratando de lograr es un diálogo modal de tamaño libre con una vista desplazable que contiene un contenedor para otra vista. He tenido muchos resultados variados, incluido el hecho de que funcionara correctamente. La mayoría de las veces lo veo exactamente correcto, pero sin desplazamiento.
Finalmente descargué el código de Dickey Singh, que funcionó perfectamente pero no tenía nada especial. (Excelente solución limpia por cierto). Entonces, le agregué una vista de contenedor, exactamente como lo había hecho en mi código, ¡y se rompió!
Después de algunos experimentos, resolví lo que está pasando. Se paciente conmigo.
1) Con el diseño automático, el tamaño de la vista de desplazamiento parece dictar cuáles serán los límites de desplazamiento. La configuración de "contentSize" en "Atributos de tiempo de ejecución definidos por el usuario" parece no tener ningún efecto en esto, y tampoco la configuración de "contentSize" o "bound" en "viewWillDisplay" o "viewDidLoad". Por lo tanto, si el tamaño inicial de la vista de desplazamiento es 800x800, será todo el espacio que se puede mostrar. Por esta razón, cuando quiero una región desplazable, creo una vista de contenedor y luego coloco la vista de desplazamiento dentro del contenido.
2) Sin la Disposición automática, la configuración de "contentSize" en "Atributos de tiempo de ejecución definidos por el usuario" funciona, al igual que configurándolo programáticamente en "viewDidLoad". Prefiero usar "Atributos de tiempo de ejecución definidos por el usuario" porque mantiene el tamaño con el diseño. Esta solución le permite utilizar la vista de desplazamiento con más flexibilidad, ya que puede ser de cualquier tamaño en el momento del diseño.
3) Independientemente del diseño automático, si alguna vista dentro del área de desplazamiento coincide exactamente con CUALQUIER límite del marco horizontal o vertical, entonces la vista de desplazamiento deja de funcionar como una vista de desplazamiento. Esto se aplica a mi propio código y al código de Dickey Singh en cada configuración posible que he probado.
No tengo idea de lo que está causando (3), pero es claramente un error.
Espero que esto ayude a todos los que están luchando por usar la vista de desplazamiento. Me imagino que algunas personas los están usando sin ningún problema, y algunos (como yo) han tenido problemas con ellos.
Nuevo: 26/03/2013
Me topé con lo que creo que es una forma aún más sencilla de tratar con UIScrollView directamente en el guión gráfico.
- No se necesita código, solo la configuración del guión gráfico. Esto tal vez nuevo en iOS6.1 / Xcode 4.6
- No es necesario desactivar las restricciones (es decir, desmarque "Usar autolayout" en File Inspector para el archivo de guión gráfico)
- No es necesario agregar UIScrollView * scrollView; en .h
- No es necesario agregar self.scrollView.contentSize = ... en las anulaciones de viewWillAppear o viewDidLoad
Esto es lo que hice (partes importantes resaltadas con **): (ver code )
- Crea un nuevo proyecto con storyboard habilitado.
- Entra en un UIScrollView, establece la clase en el inspector de identidad para ver el controlador
- En los atributos Inspector, cambie el Tamaño en métricas simuladas a Freeform **
- Seleccione la vista de desplazamiento; En el inspector de atributos, active "desplazamiento habilitado" y "fondo" a "Blanco" (descubrirá por qué, si no lo hace)
- En Inspector de tamaño (con la vista de desplazamiento seleccionada), cambie la altura a 900 por ejemplo **
- Añadir botones, uno arriba y otro abajo.
- Agregue un controlador predeterminado para buttonTouchUpInside para ambos botones y simplemente Registre el remitente.
Ver code Seleccione el Controlador de vista y la vista de desplazamiento y verifique los inspectores.
Siento tu dolor. La única forma que encontré es desplazar manualmente la vista de desplazamiento en el inspector de tamaño para revelar la parte de la vista que desea editar visualmente.
Use una vista UIV para contener elementos para que estén posicionados en relación con esta vista. Agregue la vista como una subvista al scrollview en 0,0.
- pan: use la coordenada Y, por ejemplo, a -200, luego edite los contenidos.
- para colocar más contenidos en la parte oculta, panear de nuevo para revelar nuevos inmuebles
- cuando haya terminado, restaure los valores de la altura de ScrollView y la posición X, Y.
Asegúrese de que el rectángulo del marco de la vista de desplazamiento sea más pequeño que la vista contenida.
Simplemente cambie el ''Tamaño simulado'' del controlador de vista a forma libre y establezca una altura más grande que el tamaño habitual, podrá ver todos los puntos de venta que necesita editar.
Simplemente desmarque las "Subvaloraciones automáticas" de cualquier vista que esté intentando redimensionar y debería evitar que todos sus objetos cambien de tamaño.