我对UserLocation和MapKit有疑问。
我会关注地图上的用户位置(如果用户位置发生变化,则会自动移动地图)如果用户点击(或平移或捏合)地图,我将禁用“跟随模式”#39; (像Apple地图应用程序)..
我试过这个方法:
[_mapView setUserTrackingMode:MKUserTrackingModeFollowWithHeading animated:YES];
这项工作做得很好,但我对此有一些疑问:
可以在“关注模式”中设置特定的缩放级别'?
我注意到,如果他们处于关注模式'我捏了一下地图,按照模式'模式不会中断。如果我仍然捏地图(或平移)'按照模式'被打断了。当你真的停止这种模式时,我不明白。
答案 0 :(得分:1)
您可以在其委托方法中将地图的区域或中心设置为用户位置:
区:
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation {
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(userLocation.coordinate, 200.0f, 200.0f);
[self.mapView setRegion:region animated:YES];
}
中心:
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation {
[self.mapView setCenterCoordinate:userLocation.location.coordinate animated:YES];
}
答案 1 :(得分:0)
我想我知道你的意思,你可以试试MKMapViewDelegate
:
func mapView(_mapView:MKMapView,didChangemode:MKUserTrackingMode,animated: Bool) {
mapView.setUserTrackingMode(.followWithHeading, animated: true)
}
滚动或缩放mapView时,MKUserTrackingMode
会发生变化,
所以你可以重置它。
答案 2 :(得分:0)
我想你想重置跟踪模式回到自动关注:
[_mapView setUserTrackingMode:MKUserTrackingModeFollowWithHeading animated:YES];
问题是何时重置。我建议