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?

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top