comportamento touchesMoved in iPhone e Simulator
-
20-09-2019 - |
Domanda
La funzione di touchesMoved
comporta in modo diverso in iPhone e simulatore.
L'intervallo di ripetizione (frequenza di aggiornamento) della funzione touchesMoved
è molto più veloce di simulatore. Esiste un modo per affrontare la differenza?
Soluzione
Spesso le persone stanno scoprendo che questo è un problema perché stanno facendo qualcosa intensiva nel gestore touchesMoved e quando gli eventi arrivano molto spesso, rende l'interfaccia sembra essere in ritardo.
Un modo relativamente semplice per affrontare questo è: Prima di tutto, nel gestore touchesMoved, memorizzare la posizione di contatto in una variabile che rappresenta la posizione di tutto ciò che è il monitoraggio del dito.
Ritorna dal gestore touchesMoved immediatamente. Creare un oggetto NSTimer e impostare il controller di vista come un delegato di esso e che hanno fare tutto ciò ri-disegno / vista comportamento in movimento usato per essere nel vostro gestore touchesMoved. Così, si ottiene un quasi costante movimento, indipendentemente dal tempo tra gli eventi touchesMoved.
Se sei veramente avanzato è possibile utilizzare un costume NSRunLoop invece di utilizzare un timer, ma questo è più di quanto posso spiegare qui :) L'idea generale è: non essere fare tutto nei gestori di eventi di tocco