我正在以编程方式添加多个注释:
- (void)addAnnotations{
NSInteger i;
CLLocationCoordinate2D location;
for ( i = 0 ; i < [storeLatitude count] ; i ++ ){
location.latitude = [[storeLatitude objectAtIndex:i] floatValue];
location.longitude = [[storeLongitude objectAtIndex:i] floatValue];
MapViewAnnotation *newAnnotation = [[MapViewAnnotation alloc] initWithTitle:[listOfStores objectAtIndex:i] andCoordinate:location];
[self.mapView addAnnotation:newAnnotation];
[newAnnotation release];
}
}
是否可以在不点击的情况下显示所有引脚的标题?
答案 0 :(得分:7)
声明一个数组来存储所有注释并使用MKMapView的setSelectedAnnotations:(NSArray *)方法
- (void)addAnnotations {
NSMutableArray *annotationArray = [[NSMutableArray alloc]init];
NSInteger i;
CLLocationCoordinate2D location;
for ( i = 0 ; i < [storeLatitude count] ; i ++ ) {
location.latitude = [[storeLatitude objectAtIndex:i] floatValue];
location.longitude = [[storeLongitude objectAtIndex:i] floatValue];
MapViewAnnotation *newAnnotation = [[MapViewAnnotation alloc] initWithTitle: [listOfStores objectAtIndex:i] andCoordinate:location];
[annotationArray addObject:newAnnotation];
[self.mapView addAnnotation:newAnnotation];
}
[mapView setSelectedAnnotations:annotationArray];
}
答案 1 :(得分:4)
试试这个。它会自动显示标题。
-(void)mapView:(MKMapView *)mapView1 didAddAnnotationViews:(NSArray *)views
{
[self.mapView selectAnnotation:yourannotationpin animated:NO];
}
答案 2 :(得分:0)
U可以使用自定义注释视图来显示标题和子标题,而无需单击图钉。 有一个自定义注释视图的教程。
答案 3 :(得分:0)
无法找到setSelectedAnnotations
的快速版本。下面显示了标题,但是对于多个移动目标,只有数组中最后一个的标题才会显示,直到didAdd
的下一次迭代。所以仍然在寻找更通用/完整的解决方案。
func mapView(_ mapView: MKMapView, didAdd views: [MKAnnotationView]) {
for view in views {
if let annotation = view.annotation, let title = annotation.title {
print("displaying:\(title!)")
mapView.selectAnnotation( annotation, animated: true )
}
}
}
答案 4 :(得分:-3)
不可能。您必须单击pin Annotation才能显示标题。