Question

Aaaarg ... ok, calmons-moi moi-même.

Quelqu'un a-t-il eu du mal à définir la région d'un MKMapView? Cela n'a jamais fonctionné avec moi.

Ce 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);
}

Renvoie ce journal:

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

Savez-vous pourquoi ??!

Merci beaucoup, vous pouvez me sauver de me tuer X (

Mart

EDIT: Bien sûr, je suis sur l'appareil, connecté à Internet.

Était-ce utile?

La solution

Je ne comprends pas exactement les journaux précédents, mais je sais où était mon erreur.

MKMapView instancié n'a pas été initialisé avec un cadre, mais avec un autoresizingMask défini sur > 0.

Lorsque la méthode setRegion a été appelée, ma vue n'était pas encore encadrée. Je pense que les valeurs de région sont calculées en fonction du cadre de la vue. Ces valeurs sont donc introuvables.

Il suffit de définir le cadre avant de faire un setRegion, et il s'affichera normalement.

Au revoir!

Autres conseils

Votre premier journal utilise self.region.center.latitude , mais je ne le vois nulle part dans votre appel à MKCoordinateRegionMake . Le journal vous indique que tout ce que vous utilisez pour définir la région à définir a une valeur lat / long de 0/0 ...

La définition du masque de redimensionnement automatique m'a aidée.

[_mapView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];   
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top