Domanda

Voglio scorrere uno scrollview basato sui valori uiaccelerometri. Qual è il modo migliore per raggiungere questo obiettivo?

Inizialmente ho impostato l'offset del contenuto su un valore in base ai valori dell'accelerometro che ottengo. Poi su ciascuno scrollViewDidEndAnimating, Imposta nuovamente l'offset del contenuto in base ai valori di acceleromter. lo capisco setContentOffset In realtà scorre lo scrollview con una velocità uniforme senza alcuna accelerazione. Tuttavia, questo meccanismo sembra essere molto a scatti nel scorrere lo scrollview.

Qualsiasi idea sarà apprezzata.

Grazie e saluti

È stato utile?

Soluzione

L'ho fatto una volta. sv è la vista a scorrimento.

- (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;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top