iOS MKMapView设置区域问题

iOS MKMapView设置区域问题,ios,mkmapview,Ios,Mkmapview,在我的MKMapView中,每次使用新位置调用didUpdateLocations时,我都会尝试更新MKCoordinateRegion。但是,问题是,当我这样做时,它会缩小到我在viewDidLoad中设置的原始MKCoordinateRegion,然后放大到新区域。这是一个可怕的UX 在didUpdateLocations中,我正在做: MKUserLocation *userLocation = _mapView.userLocation; MKCoordinateRegion regio

在我的MKMapView中,每次使用新位置调用didUpdateLocations时,我都会尝试更新MKCoordinateRegion。但是,问题是,当我这样做时,它会缩小到我在viewDidLoad中设置的原始MKCoordinateRegion,然后放大到新区域。这是一个可怕的UX

在didUpdateLocations中,我正在做:

MKUserLocation *userLocation = _mapView.userLocation;
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance (userLocation.location.coordinate, newHeight, newWidth);
    [_mapView setRegion:region animated:NO];

有什么想法吗?

你能提供更多的信息吗?didUpdateLocations-仅包含这两条线或更多?只需更改地图的中心坐标,而不是整个区域。请注意,将userTrackingMode设置为MKUserTrackingModeFollow可以让您完全避免手动更新。我确实设置了MKUserTrackingModeFollow,我不能只更改中心坐标,因为在我的地图中,我试图只显示用户和pin之间的区域,该pin可能在200英尺之外,也可能在3000英里之外。这是一个定位应用程序,因此用户可能开始距离批注500米,但随着他们离批注越来越近,我想更改地图的缩放比例,使其在距离目标越来越近时放大。问题是如何在didUpdateLocations中设置新高度和新宽度。在iOS 7中,您可以使用showAnnotations方法为您进行区域计算。如果你的应用程序需要在低于iOS 7的版本上运行,那么有一种更好的方法来计算该地区。