2011-08-17 57 views
1

我在MKMapView顯示用戶位置。我不想要默認的藍色圓圈,而是紅色的針腳。用戶位置註釋錯誤,當不是默認的

因此,我實現了mapView:viewForAnnotation:並且始終返回一個紅色的針,因爲用戶的位置是我將在地圖視圖中顯示的唯一針。

當使用默認的藍色圓圈時,位置非常精確,但當切換到紅色針時,它會關閉很多。就好像紅色針腳正好掉落,然後向上移動,因此不再顯示我的當前位置。

這是我的代碼:

- (MKAnnotationView *)mapView:(MKMapView *)_mapView viewForAnnotation:(id<MKAnnotation>)annotation 
{ 
    NSLog(@"MapView: Annotation."); 

    MKPinAnnotationView *pin = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:nil]; 
    [pin setPinColor:MKPinAnnotationColorRed]; 
    [pin setAnimatesDrop:YES]; 
    [pin setCanShowCallout:NO]; 

    return pin; 
} 

我使用的MapView:didAddAnnotationViews:將地圖視圖我目前的位置。

- (void)mapView:(MKMapView *)_mapView didAddAnnotationViews:(NSArray *)views 
{ 
    for(MKAnnotationView *annotationView in views) 
    { 
     if(annotationView.annotation == _mapView.userLocation) 
     { 
      MKCoordinateRegion region; 
      MKCoordinateSpan span; 

      span.latitudeDelta = 0.20; 
      span.longitudeDelta = 0.20; 

      CLLocationCoordinate2D location = [[_mapView userLocation] coordinate]; 

      region.span = span; 
      region.center = location; 

      [_mapView setRegion:region animated:YES]; 
      [_mapView regionThatFits:region]; 
     } 
    } 
} 

有沒有人知道爲什麼我的註釋不再使用紅色的引腳而不是默認的註釋視圖?

回答

0

設置[pin setAnimatesDrop:NO]而不是YES解決了這個問題。