0

既存の質問に目を通し、ルールに従っていると思いますが、何らかの理由でマップがズームされません。ブレークポイントを設定して、座標が正常に機能していることを確認しました。

以下は私のコードです。

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self configureView];

    mapView = [[MKMapView alloc]initWithFrame:CGRectMake(20, 20, 260, 169)];
    mapView.delegate = self;
    mapView.mapType = MKMapTypeStandard;
    [self.view addSubview:mapView];
}

- (void)mapView:(MKMapView *)mapView regionWillChangeAnimated:(BOOL)animated {

   Bar *maps = self.detailItem;
   MKCoordinateSpan span;
   span.latitudeDelta = .02;
   span.longitudeDelta = .02;

   CLLocationDegrees latDegree = [maps.barLat doubleValue];
   CLLocationDegrees longDegree = [maps.barLong doubleValue];
   CLLocationCoordinate2D location = CLLocationCoordinate2DMake(latDegree, longDegree);

   MKCoordinateRegion region;
   region.center = location;
   region.span = span;
   [mapView setRegion:region animated:TRUE];
}
4

1 に答える 1

0

コールバックで何をしようとしているかは完全にはわかりませんmapView:regionWillChangeAnimated:...領域が変更されるときに呼び出されます(たとえば、ユーザーのパンまたはズームで)、別の領域の変更を命令することで応答しています。多分それはデバッグのためだけですか?

あなたの質問は、マップがズームしない理由についてだと思いますよね?

マップがズームをサポートしていることを確認するには、次のコードを追加します。

mapView = [[MKMapView alloc]initWithFrame:CGRectMake(20, 20, 260, 169)];
mapView.delegate = self;
mapView.mapType = MKMapTypeStandard;
mapView.zoomEnabled = YES;
mapView.multipleTouchEnabled = YES;

しかし、あなたが見ているのは、あなたのマップがかなり小さいということだけなのだろうかと思っています。画面サイズの半分以下です。シミュレーターでは、ピンチ ジェスチャ (ズームの原因となります) を実行するのが難しく、実際のデバイスでも、2 本の指をその小さな表示領域に入れるのは簡単ではありませんでした。しかし、両方のプラットフォームで、ズームを許可するコード (iOS 5.0) を確実に確認しました。

マップのサイズを大きくしてframe、狭い範囲でピンチするのが難しいだけではないことを確認できますか?

于 2012-07-20T02:36:34.580 に答える