6

私は MKMapView をいじって、MKMapViewDelegate システムがどのように機能するかを理解しようとしました。これまでのところ、現在の位置マーカーが追加されたときに didAddAnnotationViews を呼び出すことができませんでした。

MKMapViewDelegate を実装するようにアプリ デリゲートを設定しました。xib に MapView へのアウトレットがあり、アプリ デリゲート インスタンスのように、MapView のデリゲート プロパティを self に設定しました。以下に示すように、アプリのデリゲートに didAddAnnotationViews を実装しました。マップは現在の場所を表示するように設定されており、起動時に青いピンの注釈が追加されますが、何らかの理由で didAddAnnotationViews がヒットしていません。

- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views{
    NSLog(@"Annotation added!");
}

私が見逃したかもしれないアイデアはありますか?

4

3 に答える 3

5

BNR で同じ問題に遭遇しました。これが私が最終的に使用したものです:

    // Tell MKMapView to zoom to current location when found
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
    NSLog(@"didUpdateUserLocation just got called!");

    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance([userLocation coordinate], 250, 250);
    [mapView setRegion:region animated:YES];
}
于 2011-03-12T19:33:56.993 に答える
3

mapView:didAddAnnotations:addAnnotation:またはに応答してのみ呼び出されaddAnnotations:ます。ユーザーの場所のピンは、このデリゲート メソッドをトリガーしません。

于 2011-01-29T23:13:46.920 に答える
0

を使用してこれを機能させることができたことを確認したかっただけです

 - (void)mapView:(MKMapView *)mv didAddAnnotationViews:(NSArray *)views
{
    MKAnnotationView *annotationView = [views objectAtIndex:0];
    id <MKAnnotation> mp = [annotationView annotation];
    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance([mp coordinate], 250,250);
    [mv setRegion:region animated:YES];
}

mapView.delegate = self; を使用していることを確認してください。または [mapView setDelegate:self];

于 2012-03-05T20:49:13.017 に答える