在我的應用程序中,我有一個MKMapView,其中顯示了幾個註釋。地圖根據設備的標題旋轉。要旋轉執行以下語句地圖(通過該方法的LocationManager叫:didUpdateHeading :)iOS在MKMapView旋轉的響應中旋轉MKAnnotationView
self.navigationMapView.mapView.transform = CGAffineTransformMakeRotation(-heading);
在標題(磁)以弧度表示。我注意到,即使地圖上的註釋旋轉,我也不想要它。我試圖修復它在下面的方法:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation{
static NSString *identifier = @"AnnotationViewIdentifier";
MKAnnotationView *av = [mapView dequeueReusableAnnotationViewWithIdentifier:identifier];
if (av == nil) {
av = [[[MKPinAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:identifier] autorelease];
}
else{
av.annotation = annotation;
}
av.transform = CGAffineTransformMakeRotation(degreesToRadians(self.arController.currentHeading.magneticHeading));
av.canShowCallout = YES;
return av;
}
,我想從調用此方法「didUpdateHeading:」但我真的不知道該怎麼做。 TableView類具有調用委託方法的reloadData函數,但這裏看起來不同。有什麼建議麼?!
另一個問題,我在地圖上的註釋顯示與用戶的距離,我想在用戶更改位置時立即更新它們(距離標籤)。有什麼建議麼?!
由於註釋被刪除,然後通過「didUpdateHeading」委託方法調用的方法重新添加,問題是現在註釋在屏幕上閃爍,並且無法選擇它們。選項2不起作用...我猜想選項3不是更有效。有什麼建議麼? – ubiAle
您是否認爲某些問題可能是註釋以某種方式從屏幕上移除了,但地圖並不清晰?這可能與您的代碼? – Tony