2012-02-16 11 views
9

He leído de Apple de desplazamiento Ver guía de programación para iOS, pero todavía confundidos sobre la parte siguiente:UIScrollView: diferencia entre setContentOffset: animado y scrollRectToVisible: animada

Desplazamiento a una específica Offset

Desplazamiento a una ubicación específica de arriba a la izquierda (la propiedad contentOffset) se puede lograr de dos maneras. El método setContentOffset: animado: desplaza el contenido al desplazamiento de contenido especificado. Si el parámetro animado es SÍ, el desplazamiento se animará desde la posición actual a la posición especificada a una velocidad constante. Si el parámetro animado es NO, el desplazamiento es inmediato y ninguna animación toma el lugar . En ambos casos, el delegado recibe un mensaje scrollViewDidScroll: . Si la animación está deshabilitada, o si establece el contenido compensado por configurando la propiedad contentOffset directamente, el delegado recibe un mensaje simple scrollViewDidScroll: . Si la animación está habilitada, el delegado recibe una serie de mensajes scrollViewDidScroll: la animación está en progreso. Cuando se completa la animación, el delegado recibe un mensaje scrollViewDidEndScrollingAnimation: message.

Hacer un rectángulo visible

También es posible desplazarse de un área rectangular de modo que sea visible . Esto es especialmente útil cuando una aplicación necesita muestra un control que está actualmente fuera del área visible en la vista visible . El método scrollRectToVisible: animado: desplaza el rectángulo especificado para que solo sea visible dentro de la vista de desplazamiento. Si el parámetro animado es SÍ, el rectángulo se desplaza hacia la vista a un ritmo constante. Al igual que con setContentOffset: animated :, si la animación está deshabilitada, el delegado recibirá un solo mensaje scrollViewDidScroll: . Si la animación está habilitada, se envía al delegado una serie de scrollViewDidScroll: mensajes a medida que avanza la animación. En el caso de scrollRectToVisible: animated: las propiedades de seguimiento y arrastre de la vista de desplazamiento también son NO.

Si la animación está habilitada para scrollRectToVisible: animada :, el delegado recibe un scrollViewDidEndScrollingAnimation: mensaje, proporcionar una notificación de que la vista de desplazamiento ha llegado a la ubicación especificada y la animación es completa.

Creo que es bastante similar entre setContentOffset: animated y scrollRectToVisible: animated, podría alguien dar algunas pistas sobre ellos?

Y scrollRectToVisible: animated: es similar a scrollViewDidEndDecelerating: animated: too.

Respuesta

14

Respuesta corta:

setContentOffset: animada conserva la zoomscale.

scrollRectToVisible: animated puede cambiarlo.

+0

Gracias, ¿alguna otra? – ThinkChris

+1

Si usa setContentOffset: animated: puede desplazarse fuera de contentSize. –

+0

@GustafRosenblad Eso no es cierto, no se puede desplazar fuera del contenido Tamaño que debería agregar el recuadro de contenido. –

Cuestiones relacionadas