Ich möchte ein MKMapRect-Ergebnis erhalten, das in allen Richtungen 10-20% größer ist als das aktuelle visibleMapRect
. Wenn dies ein CGRect wäre, würde ich CGRectInset mit negativen x- und y-Werten verwenden, was mir einen inversen Inset (d. H. Ein größeres rect) liefert. Leider unterstützt MKMapInset keine negativen Einfügewerte, daher ist es nicht ganz so einfach.
Dies könnte einfacher sein, wenn die Werte für die Map Rect erkennbare Einheiten sind, aber die X- und Y-Werte des Ursprungs in der Größenordnung von 4.29445e + 07 liegen und die Breite / Höhe zwischen 2500 und 3000 liegt.
Ich brauche ungefähr 10 Sekunden, um eine Kategorie manuell zu schreiben, aber ich wollte sichergehen, dass ich zuerst nichts verpasst habe. Gibt es eine einfachere Möglichkeit, MKMapRect zu erweitern?
In iOS7 waren rectForMapRect:
und mapRectForRect:
veraltet und gehören nun zur Klasse MKOverlayRenderer
. Ich würde eher empfehlen, die Methoden MapView
mapRectThatFits: edgePadding:
zu verwenden. Hier ist ein Beispielcode:
neueste Swift für 2017 ...
%Vor% Was ist mit der Umwandlung der visibleMapRect
in eine CGRect
mit rectForMapRect:
, das Erhalten einer neuen CGRect
mit CGRectInset
und das anschließende Umwandeln in MKMapRect
mit mapRectForRect:
?
Verfeinerte und korrigierte Antwort von user2285781 für Swift 4:
%Vor%Tags und Links objective-c mapkit