2011-01-27 5 views
5

Quiero hacer una vista con tres subvistas apiladas una sobre otra con la subvista media desplazable con las otras corregidas.Hacer la subvista de un UIScrollView fijo mientras que las otras subvistas pueden desplazarse

¿Cómo puedo lograr esto programáticamente? He intentado

  • para configurar el contenido de la vista raíz al tamaño de la vista desplazable, pero eso hace que todas las vistas se desplacen.

-establece el contenido de la subvista del medio sin establecer ninguna propiedad para la vista de raíz, pero eso hace que todas las vistas no se puedan deslizar.

Por favor ayuda. Soy nuevo en iOS.

Gracias de antemano

Respuesta

23

Puede utilizar la devolución de llamada scrollViewDidScroll: delegado en la UIScrollView para ajustar la posición de su punto de vista. En la devolución de llamada, obtenga el contentOffset de la vista de desplazamiento y utilícelo para establecer la posición de su vista fija.

Por ejemplo, si desea que su vista fija permanezca siempre a 100 px desde la parte superior de la vista de desplazamiento, establezca su fotograma inicial en (0, 100, ancho, alto) y luego en la devolución de llamada configure el fotograma (0, contentOffset.y + 100, ancho, alto).

El resultado es que la subvista aparecerá fija a una altura determinada.

+0

gracias! Eso funciono. Solo que mis scrollviews necesitaban desplazamiento horizontal, así que actualicé la coordenada x del marco en el delegado. – sam

+0

no hay problema! supuse que estabas haciendo scroll vertical, me alegro de que todo haya funcionado. – kevboh

+0

Cool. Lo comprobé y parece que esto es exactamente lo que hace UITableView con backgroundView desde iOS 3.2. – pt2ph8

3

Si su UIScrollView tiene una supervista (es decir, una vista de contenedor), puede agregar su vista "fija" como una subvista de la supervista en lugar de UIScrollView. Solo tendrá que calcular las coordenadas de su marco una vez.

0

Usted puede hacer que se mueva vista secundaria desde UIScrollView a super vista de ScrollView como:

Lugar/configurar el botón de desplazamiento sobre la vista (no dentro de la vista de desplazamiento) como se muestra aquí en esta instantánea. Y también configure las restricciones de los botones (posición) con respecto a la súper vista de su vista de desplazamiento.

enter image description here

Aquí es ref. instantánea de la jerarquía de posición de cada vista sobre el otro.

enter image description here

Cuestiones relacionadas