TouchesMoved Behavior no iPhone e simulador
-
20-09-2019 - |
Pergunta
A função touchesMoved
Comporta -se de maneira diferente no iPhone e simulador.
O intervalo de repetição (taxa de atualização) da função touchesMoved
é muito mais rápido que o simulador. Existe uma maneira de lidar com a diferença?
Solução
Muitas vezes, as pessoas estão achando que isso é um problema, porque estão fazendo algo intensivo no manipulador de toques e quando os eventos chegam com muita frequência, faz com que a interface pareça atrasar.
Uma maneira relativamente simples de lidar com isso é: antes de tudo, no manipulador TouchesMoved, armazenar a posição de toque em uma variável que representa a posição do que quer que esteja rastreando o dedo.
Retorne do manipulador TouchesMoved imediatamente. Crie um objeto NSTIMER e defina seu controlador de exibição como um delegado dele e faça com que faça o que fazia o comportamento em movimento de Renagem/Visão costumava estar no seu manipulador TouchesMoved. Assim, você obtém um movimento quase constante, independentemente do tempo entre os eventos do TouchesMoved.
Se você é realmente avançado, pode usar um nsrunloop personalizado em vez de usar um cronômetro, mas isso é mais do que eu posso explicar aqui :) A idéia geral é: não faça tudo nos manipuladores de eventos do Touch.