Frage

Aaaarg ... ok, lass uns beruhigen.

Hatte jemand ein Problem damit, die Region eines Mkmapviews festzulegen? Es hat nie mit mir funktioniert.

Dieser Code:

-(void)setUserCenteredSpan:(MKCoordinateSpan)span{ // for this example, span = {0.5, 0.5}
    // Current region (just initialised)
NSLog(@"%f, %f - %f, %f",   self.region.center.latitude,
                            self.region.center.longitude, 
                            self.region.span.latitudeDelta, 
                            self.region.span.longitudeDelta);
    // New Region
MKCoordinateRegion region = MKCoordinateRegionMake([[[self userLocation] location] coordinate],
                                                   span);
NSLog(@"%f, %f - %f, %f",   region.center.latitude,
                            region.center.longitude, 
                            region.span.latitudeDelta, 
                            region.span.longitudeDelta);
    // Region saved in MKMapView
[self setRegion:region animated:NO];
NSLog(@"%f, %f - %f, %f",   self.region.center.latitude,
                            self.region.center.longitude, 
                            self.region.span.latitudeDelta, 
                            self.region.span.longitudeDelta);
}

Gibt das Protokoll zurück:

30.145127, -40.078125 - 0.000000, 0.000000
0.000000, 0.000000 - 0.500000, 0.500000
0.000000, 0.000000 - 0.000000, 0.000000

Weißt du, warum ??!

Vielen Dank, Sie können mich vor dem Töten von mir x (

Mart

Bearbeiten: Natürlich bin ich auf dem Gerät, verbunden mit dem Internet.

War es hilfreich?

Lösung

Ich verstehe die vorherigen Protokolle nicht genau, aber ich weiß, wo mein Fehler war.

Die mkmapview wurde nicht mit einem Rahmen initialisiert, sondern mit einer autorisierenden Maske auf> 0.

Als die SetRegion -Methode aufgerufen wurde, wurde meine Ansicht noch nicht gerahmt. Ich denke, die Regionwerte werden gemäß dem Ansichtsrahmen berechnet, sodass diese Werte nicht gefunden werden konnten.

Stellen Sie den Rahmen einfach vor, bevor Sie ein SetRegion durchführen, und er würde normal angezeigt.

Wiedersehen !

Andere Tipps

Ihr erstes Protokoll verwendet self.region.center.latitude, aber ich sehe das nirgendwo in deinem Anruf dazu MKCoordinateRegionMake. Das Protokoll sagt Ihnen, dass alles, was Sie verwenden, um die Region zu setzen, eine LAT/Long von 0/0 hat ...

Das Einstellen der Autorisierungsmaske hat mir geholfen.

[_mapView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];   
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top