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(

玛特

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

有帮助吗?

解决方案

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

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

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

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

再见!

其他提示

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

设置AutoResizing Mask帮助了我。

[_mapView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];   
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top