0
私のマップビューはすべての選択を除いて正常に動作しているようだ次のコードで表示されたとき、私はMapViewの注釈を設定しています:このシナリオではなぜselectAnnotationは機能しませんか?
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
MapAnnotation *pinpoint = [[MapAnnotation alloc] initWithTitle:@"Title" andCoordinate:loc];
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(loc, 1500, 1500);
[self.mapView setRegion:region animated:true];
[self.mapView addAnnotation:pinpoint];
[self.mapView selectAnnotation:pinpoint animated:true]; //nothing happens!?
}
しかし、このコールバックで同じメソッドを呼び出した場合、それが正常に動作します:
- (void)mapView:(MKMapView *)mv didAddAnnotationViews:(NSArray *)views
{
MKAnnotationView *annotationView = [views objectAtIndex:0];
id <MKAnnotation> mp = [annotationView annotation];
[mv selectAnnotation:mp animated:YES];
}
原因は何ですか。これはselectAnnotationを呼び出す適切な場所ではありませんか? viewForAnnotationが呼び出されるまで待つ必要がありますか?
他の質問での私のソリューション::http://stackoverflow.com/a/13026353/736384
この人気の質問を参照してください –