0

マップ ビューでマップを開くように設定すると、2 秒の遅延でマップがズームインして mkannotation が表示されます。これを達成できませんでした。

したがって、基本的には、自分の場所にドロップされている注釈 + ピンに遅延を追加したいと考えています。

どうすればいいですか?

現在ViewDidLoadにあるコード、mkannotationのコードは無効です-showDetails:

- (void)viewDidLoad
{
    [super viewDidLoad];
// Do any additional setup after loading the view.

[mapView setMapType:MKMapTypeStandard];
[mapView setZoomEnabled:YES];
[mapView setScrollEnabled:YES];
MKCoordinateRegion region = { {0.0, 0.0 }, { 0.0, 0.0 } };
region.center.latitude = 54.5;
region.center.longitude = -3.5;
region.span.longitudeDelta = 10.0f;
region.span.latitudeDelta = 10.0f;
[mapView setRegion:region animated:NO];

[self performSelector:@selector(zoomInToMyLocation)
           withObject:nil
           afterDelay:2]; //will zoom in after 2 seconds
}

-(void)zoomInToMyLocation
{
MKCoordinateRegion region = { {0.0, 0.0 }, { 0.0, 0.0 } };
region.center.latitude = 51.502729 ;
region.center.longitude = -0.071948;
region.span.longitudeDelta = 0.19f;
region.span.latitudeDelta = 0.19f;
[mapView setRegion:region animated:YES];

[mapView setDelegate:self];

DisplayMap *ann = [[DisplayMap alloc] init];
ann.title = @"Design Museum";
ann.subtitle = @"Camberwell, London";
ann.coordinate = region.center;
[mapView addAnnotation:ann];
}
4

1 に答える 1

0

リージョンを設定するにデリゲートを設定すると、デリゲートはmapView:regionDidChangeAnimatedへの呼び出しを受け取ります。これはスクロール中に何度も呼び出されるため、マップの現在の中心点を確認し、ターゲットの中心点に十分近づいたら注釈を追加します。

- (void)viewDidLoad
{
    [super viewDidLoad];
    [mapView setDelegate:self];
     ............
    haveAddedPin = false;
}


-(void)zoomInToMyLocation
{
    MKCoordinateRegion region = { {0.0, 0.0 }, { 0.0, 0.0 } };
    region.center.latitude = 51.502729 ;
    region.center.longitude = -0.071948;
    region.span.longitudeDelta = 0.19f;
    region.span.latitudeDelta = 0.19f;
    [mapView setRegion:region animated:YES];
}

-(void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(Boolean) animated)
{
    if (haveAddedPin == false && mapView.center == the coordinates of the target you are zooming to)
    {
        DisplayMap *ann = [[DisplayMap alloc] init];
        ann.title = @"Design Museum";
        ann.subtitle = @"Camberwell, London";
        ann.coordinate = region.center;
        [mapView addAnnotation:ann];
        haveAddedPin = true;
    }
}
于 2012-12-08T04:25:42.393 に答える