我可以调用自动打开我的注释(带标题,副标题等)的函数,而不是触摸mapview上的注释吗?
答案 0 :(得分:4)
实施MKMapViewDelegate
委托;
实施- (MKAnnotationView *) mapView: (MKMapView *) mapView_ viewForAnnotation: (id <MKAnnotation>) annotation_;
;例如:
- (MKAnnotationView *) mapView: (MKMapView *) mapView_ viewForAnnotation: (id <MKAnnotation>) annotation_ {
MKPinAnnotationView *pin = (MKPinAnnotationView *) [self.mapView dequeueReusableAnnotationViewWithIdentifier: @"YourPinId"];
if (pin == nil) {
pin = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation_ reuseIdentifier: @"YourPinId"] autorelease];
}
else {
pin.annotation = annotation_;
}
pin.pinColor = MKPinAnnotationColorRed;
[pin setCanShowCallout:YES];
pin.animatesDrop = YES;
return pin;
}
地图加载完成后显示图钉:
- (void) dropPin {
[mapView addAnnotation:self.annotation];
[mapView selectAnnotation:self.annotation animated:YES];
}
- (void) mapViewDidFinishLoadingMap: (MKMapView *) mapView_ {
// if done loading, show the call out
[self performSelector:@selector(dropPin) withObject:nil afterDelay:0.3];
}
此代码有一个名为annotation的属性,它实现MKAnnotation
。此外,它也会使针脚掉落动画,但它应该是相当自我解释的。
HTH。
答案 1 :(得分:3)
Alfons回答了这个问题,但是如果你正在寻找究竟会自动打开标注的内容,那就是这个部分:
[mapView selectAnnotation:annotation animated:YES];