Mit dem Google Maps für iOS-SDK wird die Schaltfläche "Mein Standort" standardmäßig in der unteren rechten Ecke platziert:
Ich möchte es in der linken unteren Ecke platzieren (ja, ich weiß, dass ich darauf achten muss, das "Google" -Logo nicht zu verdecken). Ich glaube nicht, dass das SDK eine "offizielle" Art und Weise hat, dies zu tun, aber basierend auf dieser Antwort habe ich herausgefunden Wie bekomme ich die Unteransicht Meine Position, damit ich sie positionieren kann?
Der Teil, der mich verwirrt hat, ist, welche Werte ich dem Rahmen und / oder den Grenzen meiner Sicht "Meine Position" geben sollte, um ihn dorthin zu bekommen, wo ich ihn haben möchte. Für den Anfang hat die Schaltfläche "Mein Standort", wie sie derzeit steht, frame.origin.x
= -74
und frame.origin.y
= -54
. Dies ist das erste Mal, dass ich negative Koordinaten für ein frame.origin.x
oder ein frame.origin.y
gesehen habe und ich bin mir nicht einmal sicher, wie iOS mit negativen Koordinaten umgeht. Mein erster Gedanke war, dass z. frame.origin.x = -74
entspricht [view superview].frame.size.width - 74
, d. h. negative Werte werden von der Breite oder Höhe der Superview subtrahiert. Aber dann habe ich mir die Breite und Höhe der Superview angesehen und sie sind beide 0.0
. Hier ist mein Code, der einige Informationen über die Rahmen und Grenzen der Karte und der My Location-Schaltfläche ausgibt:
Und hier ist die Ausgabe:
%Vor%Ich habe als einfachen Test versucht, die Schaltfläche "Mein Standort" in der oberen linken Ecke mit:
zu positionieren %Vor%, aber die Schaltfläche "Mein Standort" wurde überhaupt nicht angezeigt.
Ich habe auch kleine Änderungen an den vorhandenen Werten versucht (zB frame.origin.x
von -76.0
zu -66.0
geändert und kann den Unterschied in der Position sehen, also bin ich zumindest zuversichtlich, dass ich die Position der Ich verstehe immer noch nicht, wie negative Koordinaten funktionieren und wie ich die Ansicht in diesem speziellen Szenario richtig positionieren kann. Nachdem ich die Antworten auf diese Frage gelesen hatte, dachte ich, ich hätte einen vernünftigen Überblick Rahmen und Grenzen, aber vorausgesetzt, dass ich das noch nicht zum Funktionieren gebracht habe, anscheinend nicht.
Der einfachste Weg, dies zu lösen, ist, den Rahmen und die Autorisierungsmaske der Schaltfläche direkt nach dem Erstellen der Kartenansicht zu ändern.
%Vor%BEARBEITEN : Entschuldigung, ich habe den Button in der oberen rechten Ecke platziert. Mein Code wurde aktualisiert, um ihn in der unteren linken Ecke zu platzieren.
Hinweis: Zurzeit gibt es keine API von Google, um die Schaltfläche "Standort" zu erhalten. Die erste Zeile funktioniert möglicherweise nicht in zukünftigen Versionen des SDK.
Sie sollten auch eine Feature-Anfrage erstellen hier .
Eine weitere Option besteht darin, die Schaltfläche selbst zu erstellen und sie als Unteransicht der Karte hinzuzufügen. Der Button-Handler-Code ist ziemlich einfach:
%Vor%Tags und Links objective-c ios google-maps-sdk-ios