Aaaarg... ok, let's calm myself.
Did someone have any problem with setting the region of a MKMapView ? It never worked with me.
This 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);
}
Returns that log :
30.145127, -40.078125 - 0.000000, 0.000000
0.000000, 0.000000 - 0.500000, 0.500000
0.000000, 0.000000 - 0.000000, 0.000000
Do you know why ??!
Thanks a lot, you can save me from killing myself X(
Mart
EDIT : Of course, I am on the device, connected to internet.
Setting the AutoResizing Mask helped me.
Your first log uses
self.region.center.latitude
, but I don't see that anywhere in your call toMKCoordinateRegionMake
. The log is telling you that whatever you are using to make the region to set, has a lat/long of 0/0...I don't understand exactly the previous logs, but I know where was my error.
The instancied MKMapView was not initialised with a frame, but with an autoresizingMask set to > 0.
When the setRegion method was called, my view was not framed yet. I think the region values are calculated according to the view frame, so these values couldn't be found.
Just set the frame before doing a setRegion, and it would display normally.
Bye !