我的应用程序中有一个getLocation按钮,该按钮获取用户的当前位置,该按钮调用以下方法:

-(void)setOriginalRegion {
    float spanX = 0.217;
    float spanY = 0.217;
    MKCoordinateRegion region;
    region.center.latitude = self.mapView.userLocation.coordinate.latitude;
    region.center.longitude = self.mapView.userLocation.coordinate.longitude;
    region.span.latitudeDelta = spanX;
    region.span.longitudeDelta = spanY;
    [self.mapView setRegion:region animated:YES];
}

那很好,当我点击时,我得到了我的位置和15英里半径(由三角洲设置)...

为确保 map 加载到当前用户的位置,我在viewWillAppear方法中添加了以下内容:
[self setOriginalRegion];

但这就是在海洋中部某处(距加纳海岸约100英里处)开始绘制 map 的原因。当然,这不是默认设置,因为默认情况下它会加载到北美地区。我在这里做错了什么?

最佳答案

正如@AndreMunis所指出的,viewWillAppear太早知道用户的位置,将我的方法调用移到viewDidAppear上,代码就像一个魅力!

关于ios - MPMapView的奇怪行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25438747/

10-14 23:08