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;

但是,我想知道您所看到的是否只是您的地图很小。它不到屏幕尺寸的一半。在模拟器上,我发现很难执行捏合手势(这会导致缩放),即使在我的真实设备上,我的两根手指也不容易进入那个小视图区域。但是,在这两个平台上,我确实看到了允许缩放的代码(iOS 5.0)。

你能增加frame你的地图的大小,并确保它不仅仅是在一个小区域内很难捏吗?

于 2012-07-20T02:36:34.580 回答