0

マップビューに次のコードが表示されたら、MapViewアノテーションを設定しています。これは、選択を除いてすべて正常に機能しているようです。

- (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が呼び出されるまで待つ必要がありますか?

4

1 に答える 1

2

注釈を選択する前に、注釈ビューを追加しておく必要があります。

この人気のある質問をご覧ください:

ピンに触れずにMKAnnotationViewのコールアウトビューをトリガーするにはどうすればよいですか?

于 2012-04-14T22:25:44.930 に答える