地图视图总是在我的位置上的中心地图
当用户按下button时,我使用下面的代码来获取我的位置
[mapview setShowsUserLocation:YES];
然后再把这个地图放到用户的位置
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation { [mapView setCenterCoordinate:mapView.userLocation.location.coordinate animated:YES]; }
我的问题是如何防止地图始终集中在我的位置? 我想让用户平移地图。
我认为它与iOS5来了,你现在可以删除委托的东西,只是设置MKMapView的userTrackingMode。 将其设置为MKUserTrackingModeFollow,以便使用户随着用户移动,然后当他们开始平移地图时,它会自动closures跟踪模式,然后您只需提供一个button即可将其重新打开。
只有在您第一次显示地图时才在中心位置。 这是一些伪代码…
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation { if(shouldCenterLocation){ [mapView setCenterCoordinate:mapView.userLocation.location.coordinate animated:YES]; shouldCenterLocation = FALSE; } //do all your other stuff here }
shouldCenterLocation是布尔标志,您可以在第一次显示地图时将其设置为TRUE,然后将其设置为FALSE,直到您退出视图(或显示中心位置的任何其他情况)。
编辑:你可以切换shouldCenterLocation在你处理button按相同的方法的状态。
在swift 3我更喜欢使用animation方法:
mapView.setUserTrackingMode(.follow, animated: true)
但集财产良好的工作:
mapView.userTrackingMode = .follow