1

私が持っているこのコードは iOS 6 で動作しますが、iOS 7 では効果がありません。スパンを設定しても効果がない場合、iOS 7 で動作させるにはどうすればよいですか?

CLLocationCoordinate2D  ctrpoint = self.location.coordinate;


MapPoint *mp = [[MapPoint alloc] initWithCoordinate:ctrpoint title:[NSString stringWithFormat:@"%@: %@",NSLocalizedString(@"Pin Name:", @"Pin Name:"),self.pin.name] subtitle:self.pin.cell];
[self.mapView addAnnotation:mp];



MKCoordinateSpan span;

span.latitudeDelta = 0.2;
span.longitudeDelta = 0.2;

MKCoordinateRegion region;
region.span = span;
region.center = self.location.coordinate;

[self.mapView setRegion:region animated:YES];
4

2 に答える 2

3

適切な方法は、提供された定数を使用することです。

- (MKCoordinateRegion)regionForWorld {
    return MKCoordinateRegionForMapRect(MKMapRectWorld);
}

それで

- (void)zoomToWorldAnimated:(BOOL)animated {
    MKCoordinateRegion region = [self regionForWorld];
    [self.mapView setRegion:region animated:animated];
}
于 2013-11-07T15:50:53.973 に答える
1
  • self.mapView が既に合成されていると仮定すると、次のようになります。

    MKCoordinateRegion region = [self.mapView regionThatFits:MKCoordinateRegionMakeWithDistance([self.location.coordinate, 800, 800)];
    region.span.latitudeDelta = 0.2;
    region.span.longitudeDelta = 0.2;
    [self.mapView setRegion:region animated:YES];
    
  • MKCoordinateRegionMakeWithDistance の 800 の値は、"CLLocationDistance latitudinalMeters" と "CLLocationDistance verticalMeters" であることに注意してください。マップのサイズと必要なズーム レベルに応じて、これらを変更する必要がある場合があります。

  • マップポイントについては、次のようにします。

    MKPointAnnotation *mapPoint = [[MKPointAnnotation alloc] init];
    [mapPoint setCoordinate:self.location.coordinate];
    [mapPoint setTitle:@"Your title"];
    [mapPoint setSubtitle:@"My subtitle"];
    [mapView addAnnotation:mapPoint];
    
  • iOS6 と iOS7 の両方でこれをテストしましたが、問題なく動作することを保証できます。

于 2013-11-07T15:16:57.647 に答える