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(
玛特
编辑:当然,我在设备上,连接到互联网。答案 0 :(得分:12)
我不完全理解以前的日志,但我知道我的错误在哪里。
实例化的MKMapView未使用框架初始化,但将autoresizingMask设置为> 0
调用setRegion方法时,我的视图尚未构建。我认为区域值是根据视图帧计算的,因此无法找到这些值。
只需在执行setRegion之前设置帧,它就会正常显示。
再见!
答案 1 :(得分:1)
您的第一个日志使用的是self.region.center.latitude
,但我在MKCoordinateRegionMake
的电话中看不到任何内容。日志告诉你,无论你使用什么来设置区域,都有一个纬度/长0/0 ...
答案 2 :(得分:1)
设置AutoResizing Mask帮助了我。
[_mapView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];