Pregunta

Quiero desplazar una vista de desplazamiento basada en los valores de UIACcelerometer. Cuál es la mejor manera de lograr esto?

Inicialmente establecí el compensación de contenido en un valor basado en los valores del acelerómetro que obtengo. Luego en cada scrollViewDidEndAnimating, Nuevamente configuré el compensación de contenido en función de los valores de Acceleromter. Entiendo que setContentOffset En realidad, se desplaza la vista de desplazamiento con una velocidad uniforme sin ninguna aceleración. Sin embargo, este mecanismo parece ser muy desagradable para desplazarse por el ScrollView.

Cualquier idea será apreciada.

Gracias y saludos

¿Fue útil?

Solución

Hice esto una vez. sv es la vista de desplazamiento.

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
    if (sv.tracking || sv.decelerating) return;
    CGPoint pt = sv.contentOffset;
    pt.x += acceleration.x * 2;
    pt.y -= acceleration.y * 2;
    if (pt.x < 0) pt.x = 0;
    if (pt.x > sv.contentSize.width - sv.frame.size.width) pt.x = sv.contentSize.width - sv.frame.size.width;
    if (pt.y < 0) pt.y = 0;
    if (pt.y > sv.contentSize.height - sv.frame.size.height) pt.y = sv.contentSize.height - sv.frame.size.height;
    sv.contentOffset = pt;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top