0

アプリを起動するたびに、最初にマップを表示すると、注釈なしで常にズームアウトされたデフォルト マップが表示されます。ナビゲーション コントローラーに戻ってマップに戻ると、適切なピンで正しい地域が表示されるようになりました。追加するために使用するコード

- (void) zoomIn {
    mapView.showsUserLocation = YES;

    CLLocationCoordinate2D annotation;
    annotation.latitude = 47.640071;
    annotation.longitude = -122.129598;

    MKPointAnnotation *annoPoint = [[MKPointAnnotation alloc] init];
    annoPoint.coordinate = annotation;
    annoPoint.title = @"name";
    [mapView addAnnotation:annoPoint];

    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(annotation, 500, 500);

    [mapView setRegion:region animated:YES];
}

このコード ブロックを viewDidLoad から呼び出しますが、ナビゲーション コントローラーからメイン ページに戻り、これUIViewControllerを再度入力した後にのみ機能します。

問題が何であるかを知っている人、または以前に見たことがある人はいますか?

4

2 に答える 2

0

あなたのviewDidLoad関数を見せてzoomInください。MKMapView が初期化される前に、呼び出しが早すぎる可能性があります。

于 2012-12-11T19:29:27.473 に答える
0
- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
{
    // this delegate fonction is called when the userlocation is updated
    // try to move your code here
}

あなたも持っています

- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
{
}

お役に立てれば

于 2012-12-11T19:00:51.860 に答える