Fehler beim Festlegen von maprect, um alle Anmerkungen anzuzeigen

7

Ich habe 2 Annotationen, die in der Kartenansicht angezeigt werden, aber ich kann die Maprect nicht so einstellen, dass sie alle auf dem Bildschirm anzeigen, ohne dass die Benutzer auszoomen müssen.

Ich habe versucht mit showAnnotations , aber kein Glück. Hat jemand das in Swift und Xcode 6.1.1 geschafft?

Hier ist mein Code:

%Vor%

Das habe ich zur Zeit bekommen:

Das habe ich erwartet:

Danke für Ihre Hilfe.

    
tala9999 26.01.2015, 16:51
quelle

4 Antworten

18

Schließlich habe ich herausgefunden, warum die Pins der Annotationen nicht im sichtbaren Bereich des Bildschirms angezeigt wurden. Ich denke, das MapKit-Framework verhält sich etwas anders als in den vorherigen Versionen. Da ich das automatische Layout verwende, um die Karte für alle Geräte (iPhones, iPads) auf den gesamten Bildschirm zu erweitern, sollten setVisibleMapRect oder mapView.showAnnotations der Map in mapViewDidFinishLoadingMap, nicht in viewDidLoad des View-Controllers

aufgerufen werden

Zum Beispiel:

%Vor%     
tala9999 27.01.2015, 16:03
quelle
3

Ich hatte das gleiche Problem, als ich

anrief %Vor%

Das Verschieben des Aufrufs in viewDidLayoutSubviews () scheint jedoch auch das Problem zu beheben (nicht, dass isInitialLoad in viewDidLoad auf true initialisiert ist).

%Vor%

Der Unterschied (ich denke, es ist ein Vorteil) des Aufrufs in viewDidLayoutSubviews besteht darin, dass die Karte noch nicht angezeigt wurde. Ihre anfängliche Anzeige ist also der Bereich, der durch die Anmerkungen definiert wird. Es scheint jedoch, dass es jedes Mal aufgerufen wird, wenn die Karte zoomt, also müssen Sie sicher sein, dass Sie es nur beim ersten Mal aufrufen.

    
Mario Hendricks 15.01.2016 04:05
quelle
2

Für mich war das Verwenden der Anzeige von Anmerkungen nach dem Laden der Karte nicht möglich.

%Vor%

Neben der Annotation musste ich Polylinien berechnen, um die Annotationen zu verbinden, und das Laden der Karte wurde zu früh ausgelöst.

Stattdessen habe ich mapViewDidFinishRenderingMap ausprobiert und es funktionierte einwandfrei. Siehe Beispiel unten:

%Vor%     
G. Pejic 20.09.2016 09:36
quelle
0

Sie können das versuchen. Ich habe eine Erweiterung erstellt, um alle Anmerkungen mit etwas Code von hier und dort in swift 2.3 anzuzeigen. Dadurch werden nicht alle Anmerkungen angezeigt, wenn sie selbst bei maximaler Zoomstufe nicht angezeigt werden können.

%Vor%     
Ankit Srivastava 08.03.2017 07:03
quelle