MKMapView:setRegion不起作用!

时间:2009-09-15 11:16:18

标签: iphone iphone-sdk-3.0 mkmapview region

Aaaarg ......好吧,让我们冷静下来。

有人设置MKMapView的区域有什么问题吗? 它从未与我合作。

此代码:

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

返回该日志:

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

你知道为什么吗?!

非常感谢,你可以免于我自杀X(

玛特

编辑:当然,我在设备上,连接到互联网。

3 个答案:

答案 0 :(得分:12)

我不完全理解以前的日志,但我知道我的错误在哪里。

实例化的MKMapView未使用框架初始化,但将autoresizingMask设置为> 0

调用setRegion方法时,我的视图尚未构建。我认为区域值是根据视图帧计算的,因此无法找到这些值。

只需在执行setRegion之前设置帧,它就会正常显示。

再见!

答案 1 :(得分:1)

您的第一个日志使用的是self.region.center.latitude,但我在MKCoordinateRegionMake的电话中看不到任何内容。日志告诉你,无论你使用什么来设置区域,都有一个纬度/长0/0 ...

答案 2 :(得分:1)

设置AutoResizing Mask帮助了我。

[_mapView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];