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. 在执行setRegion/regionThatFits. 如果是,您可能需要将代码移至viewDidAppear. - Phlibbo 的赞美

于 2012-10-30T00:33:47.060 回答