在注释上居中MKMapView

时间:2013-05-21 00:07:31

标签: iphone ios mkmapview mapkit mkannotation

虽然这样做的过程已有详细记录,但我无法解决此问题。

我想做的就是获取我刚刚创建了一个注释的坐标,让地图放大并居中。我按照本教程进行了一些修改: http://maybelost.com/2011/01/a-basic-mapview-and-annotation-tutorial/

MapViewAnnotation类只包含标题和坐标。 _detailItem只是一个将名称,纬度和经度保存为字符串的对象。

我有一张基本地图。我正在使用故事板(所以,ARC)。我有坐标。这是我的代码:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    [self configureView];

    // Set some coordinates for our position
    CLLocationCoordinate2D location;
    double thisLat = [_detailItem.EventLat doubleValue];
    double thisLong = [_detailItem.EventLong doubleValue];

    location.latitude = (double)thisLat;
    location.longitude = (double)thisLong;

    // Add the annotation to our map view
    MapViewAnnotation *newAnnotation = [[MapViewAnnotation alloc] initWithTitle:_detailItem.EventName andCoordinate:location];
    [self.map addAnnotation:newAnnotation];
}

// When a map annotation point is added, zoom to it
- (void)mapView:(MKMapView *)mv didAddAnnotationViews:(NSArray *)views
{
    MKAnnotationView *annotationView = [views objectAtIndex:0];
    id <MKAnnotation> mp = [annotationView annotation];
    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance([mp coordinate], 1000, 1000);
    [mv setRegion:region animated:YES];
    [mv selectAnnotation:mp animated:YES];
}

呀。当我这样做时,注释会按预期显示,但地图不会居中或放大。在调试期间,我发现didAddAnnotationViews根本没有被调用!然而,我已经清楚地调用了addAnnotation。

帮助?

1 个答案:

答案 0 :(得分:1)

  

didAddAnnotationViews根本没有被调用

viewDidLoad实施中,添加以下行:

self.map.delegate = self;

看看是否会改变一切。