Ich habe bemerkt, dass wenn ich MKMapViews selectAnnotation:animated:
verwende, dass es meine Karte vom Bildschirm scrollt, wenn die MKAnnotation nicht in der aktuellen MKCoordinateRegion angezeigt wird, die meine Map anzeigt.
Gibt es eine einfache Möglichkeit zu überprüfen, ob eine Anmerkung auf dem Bildschirm innerhalb der angegebenen MKCoordinateRegion angezeigt wird? Ich möchte in der Lage sein, eine Anmerkung auszuwählen, die nur auf dem Bildschirm und nicht außerhalb des Bildschirms angezeigt wird.
Verwenden Sie die Methode annotationsInMapRect:
in der MKMapView
Klasse. Sie gibt NSSet
aller Annotationsobjekte zurück, die in der angegebenen Map rect angezeigt werden. Verwenden Sie die Methode containsObject:
von NSSet
, um zu testen, ob die Anmerkung in dieser Gruppe sichtbarer Anmerkungen vorhanden ist.
Auch visibleMapRect
ist dasselbe wie die Region, aber nur eine andere Form der Darstellung. Nimm von den Dokumenten,
visibleMapRect
Der Bereich, der derzeit in der Kartenansicht angezeigt wird.
@property(nonatomic) MKMapRect visibleMapRect
Diese Eigenschaft stellt die gleichen grundlegenden Informationen wie die Regionseigenschaft dar, wird jedoch als Kartenrechteck anstelle einer Region angegeben.