4

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(

市场

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

4

3 回答 3

12

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

实例化的 MKMapView 不是用框架初始化的,而是将 autoresizingMask 设置为 > 0。

调用 setRegion 方法时,我的视图还没有框定。我认为区域值是根据视图框架计算的,因此找不到这些值。

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

再见 !

于 2009-09-16T08:29:22.787 回答
1

您的第一个日志使用self.region.center.latitude,但在您调用MKCoordinateRegionMake. 日志告诉您,无论您使用什么来设置区域,其纬度/经度都是 0/0...

于 2009-09-15T15:39:47.877 回答
1

设置自动调整大小蒙版对我有帮助。

[_mapView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];   
于 2015-08-22T17:08:43.530 回答