Uiacceleromômetro e uiscrollView
-
28-09-2019 - |
Pergunta
Eu quero rolar um scrollView com base nos valores do uiaccelerômetro. Qual é o melhor jeito de concluir isso?
Inicialmente, eu defino o compensado de conteúdo para um valor com base nos valores do acelerômetro que obtive. Então em cada um scrollViewDidEndAnimating
, Eu defino novamente o deslocamento do conteúdo com base nos valores do aceleromter. Eu entendi aquilo setContentOffset
Na verdade, rola o ScrollView com uma velocidade uniforme sem aceleração. No entanto, esse mecanismo parece ser muito espumoso ao rolar o scrollView.
Quaisquer idéias serão apreciadas.
Obrigado e cumprimentos
Solução
Eu fiz isso uma vez. sv
é a visualização de rolagem.
- (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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow