0

ユーザーがメニューオプションを選択すると、現在、場所の名前が「stringToDisplay」を介してマップビューに送信され、ピンが期待どおりに地図上にドロップしますが、最初の試行でピンが中央に配置されたり、場所がズームされたりしません。最初の試みの後のすべての試みは完璧です。最初の試行で地図を自分の場所にズームするにはどうすればよいですか?ご意見をいただければ幸いです。

viewWillAppearに複数のIFステートメントが含まれていますが、この問題が発生する場所の一例については、以下を参照してください。

-(void)viewWillAppear:(BOOL)animated

{
    CLLocationCoordinate2D location;

    NSLog(@"self.stringToDisplay = %@", self.stringToDisplay);

    MKCoordinateRegion region;
    MKCoordinateSpan span;
    span.latitudeDelta=0.1;
    span.longitudeDelta=0.1;

    region.span=span;
    region.center=location;

    [mapView setRegion:region animated:TRUE];
    [mapView regionThatFits:region];

  if ([self.stringToDisplay isEqualToString: @"August First Bakery & Café"])

  {
    location.latitude = (double) 44.475486;
    location.longitude = (double) -73.2172641;

    MapViewAnnotation *newAnnotation = [[MapViewAnnotation alloc] initWithTitle:@"August First Bakery & Café" andCoordinate:location];
    [self.mapView addAnnotation:newAnnotation];
    [mapView setCenterCoordinate:location animated:YES];
  }
}
4

1 に答える 1

1

にブレークポイントを設定しますviewWillAppear。を実行しているときに、mapViewがnilであるかどうかを確認してくださいsetRegion/regionThatFits。その場合は、コードをに移動する必要がありますviewDidAppear。-Phlibboの褒め言葉

于 2012-10-30T00:33:47.060 に答える