2011-10-25 9 views
5

私のアプリは、地図上にプッシュピンを置き、使用しているアニメーションを選択してユーザーに視覚的なヒントを与え、タイトル/サブタイトルをすぐに読むことができます。次のコードはiOS4とiOS5の両方で動作しますが、iOS5では、selectAnnotationメソッドでアニメーションをNOに変更しない限り、注釈は自動的に選択されません。iOS5でMKAnnotationが選択されていません

なぜでしょうか?

MapAnnotations *pushpin = [[MapAnnotations alloc] initWithCoordinate:coordinate]; 
pushpin.title = [selectedStation valueForKey:@"name"]; 
pushpin.subtitle = [selectedStation valueForKey:@"address"]; 
[stationMap addAnnotation:pushpin]; 
[stationMap selectAnnotation:pushpin animated:YES]; 

[pushpin release]; pushpin = nil; 

答えて

5

が、アニメーションはおそらく、作成する注釈ビューを必要とし、注釈を追加した後、すぐにそうなる準備ができて前にそれがうまくいく理由はわかりません。

- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views 
{ 
    for (MKAnnotationView *av in views) { 
     if ([av.annotation isKindOfClass:[MapAnnotations class]]) { 
      MapAnnotations *pushpin = (MapAnnotations *)av.annotation; 
      if (_this_pushpin_is_the_one_to_select) { 
       [mapView selectAnnotation:av.annotation animated:YES]; 
       break; //or return; 
      } 
     } 
    } 
} 
+0

ありがとう:あなたは何ができるか

は、すべてのiOSバージョンで動作するはずdidAddAnnotationViewsデリゲートメソッドに選択範囲を移動です​​。アノテーションのアニメーションに関してiOS5で何かを変更したに違いありません。これは機能します。そのような単純なことのためのコードが多すぎますが、仕事はします。 – afterxleep

+2

検索を避けるには、デリゲートでselectAnnotationを呼び出すだけで、選択した注釈を追加するときに選択した注釈をivarとして保持できます。 – Anna