尽管执行此操作的过程有据可查,但我无法解决此问题。
我要做的就是获取我刚刚创建注释的坐标,并让地图放大并以它为中心。我按照本教程进行了一些修改: 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。
帮助?