当用户选择菜单选项时,我当前已将位置名称通过“ 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];
  }
}

最佳答案

viewWillAppear中设置一个断点。在执行setRegion/regionThatFits时,检查mapView是否为nil。如果是这样,则可能需要将代码移到viewDidAppear。 -Phlibbo的赞美

关于ios - 首次尝试时 map 未以注释图钉为中心,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13130153/

10-10 18:23