MKMapView:在启动用户位置 - >缩放

Tim*_*Tim 11 iphone objective-c

MKMapView在地图视图中设置了"显示用户位置".如果应用程序应该使用我的位置的问题,我说是的.然后我看到蓝色的子弹,我可以放大到当前位置.

我读了很多关于此的帖子,但没有解决问题,用户位置不会自动放大.

如果用户允许访问该位置,我希望在启动时进行缩放,否则定义的坐标应该放大.(之后,使用是否允许该位置,它可以更新,但不应该每次都将中心设置为用户位置我得到了位置的更新).

实现此行为的步骤是什么?我试过这个例子:如何在没有CLLocationManager的情况下将MKMapView缩放到用户当前位置?与KVO但它不起作用......

我希望有人有个主意吗?

最诚挚的问候,蒂姆

Jos*_*Lin 24

您是否尝试过委托方法mapView:didUpdateUserLocation:?

我在我的代码中使用了类似的东西:

在.h文件中:

@property (nonatomic, retain) CLLocation* initialLocation;
Run Code Online (Sandbox Code Playgroud)

在.m文件中:

- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
    if ( !initialLocation )
    {
        self.initialLocation = userLocation.location;

        MKCoordinateRegion region;
        region.center = mapView.userLocation.coordinate;
        region.span = MKCoordinateSpanMake(0.1, 0.1);

        region = [mapView regionThatFits:region];
        [mapView setRegion:region animated:YES];
    }
}
Run Code Online (Sandbox Code Playgroud)