我正在使用MKUserTrackingBarButtonItem
按鈕來允許用戶自動跟蹤他們在地圖上的位置。問題是,當他們點擊這個按鈕時,它放大得太遠了。我希望它以指定的縮放級別(即跨度)開始。我怎樣才能做到這一點?如何在使用MKUserTrackingBarButtonItem時指定縮放級別?
當用戶點擊按鈕變爲MKUserTrackingModeFollow
時,它似乎使用用戶上次手動更改(即在地圖上使用手勢)的相同縮放級別。試圖通過setRegion
或setVisibleMapRect
指定不同的縮放級別時,不會影響將模式更改爲MKUserTrackingModeFollow
時將使用的縮放級別。
試圖設置override mapView:didChangeUserTrackingMode:
來設置區域會導致模式重新更改爲MKUserTrackingModeNone
。例如:
- (void)mapView:(MKMapView *)mapView didChangeUserTrackingMode:(MKUserTrackingMode)mode animated:(BOOL)animated {
if (mode == MKUserTrackingModeFollow) {
CLLocationCoordinate2D center = mapView.userLocation.location.coordinate;
MKCoordinateSpan span = MKCoordinateSpanMake(0.002306, 0.001717);
[mapView setRegion:MKCoordinateRegionMake(center, span) animated:YES];
// [mapView setUserTrackingMode:MKUserTrackingModeFollow animated:NO];
}
}
如果我試圖設置區域後立即復位模式時,如果用戶是靜止的正常工作,而且還可以放大退了出來,如果用戶在移動。
最簡單的解決方案是,如果有方法通過發送我的跨度值來簡單地爲MKUserTraking指定像縮放級別之類的東西。但是,由於這似乎不存在,我還能做什麼?
你是否找到了解決這個?我目前正在對付同樣的問題。 –