2016-04-20 15 views
0

Ich habe eine Karte, die hilft, eine Freunde einander zu finden. Die Anzahl der Freunde ist zu hoch und verstreut auf der Karte. Ich möchte nur die Freunde aus meiner API laden, die sich auf die aktuelle Ansicht beziehen, die der Benutzer sieht. Wenn der Benutzer wischt, werden verschiedene Benutzer angezeigt. Mit Blick auf den MKMapViewDelegate Veranstaltungen, der einzige Ort, geeignet für das, was ich tun möchte, ist:MKMapViewDelegate: Ersatz der Region zu hören Änderung Ereignis

optional func mapView(_ mapView: MKMapView, regionDidChangeAnimated animated: Bool) 

aber nach Dokumentation, soll ich nicht komplexen Code, um es das Hinzufügen:

Diskussion Diese Methode wird aufgerufen, wenn sich der aktuell angezeigte Kartenbereich ändert. Während des Scrollens kann diese Methode viele Male aufgerufen werden, um Aktualisierungen der Kartenposition zu melden. Daher sollte Ihre Implementierung dieser Methode so leicht wie möglich sein, um die Leistung beim Scrollen nicht zu beeinträchtigen.

Ich habe mir die anderen Ereignisse angesehen, keine anderen Ereignisse werden mir geben, was ich will. Welches andere MKMapViewDelgate-Event soll ich verwenden?

+1

Ich benutze diese Funktion, und ich merke, dass diese Funktion aufgerufen wird, wenn Ihre Karte zu ziehen endet. Sie können es überprüfen, sehr einfach. – Tien

+0

@Tien Ich benutze es bereits und es wird groß. Der Dokumentationshinweis ist alarmierend gegen Überlastung seiner Logik. Ich habe mich gefragt, ob ich das nicht verwenden soll, welches Ereignis sollte ich dann verwenden? – user1019042

Antwort

0

Jetzt weiß ich ziemlich viel darüber. Die Antwort ist einfach: Nein, gibt es nicht! Manchmal gibt es keine Möglichkeit, dem Ereignis mehr Logik hinzuzufügen. Ich musste einige Problemumgehungen machen, indem ich Switches auslegte, um zu verhindern, dass sie weiter verarbeitet oder durchgelassen wurden.