5

我正在以编程方式添加多个注释,如下所示:

- (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];    
    }
}

是否可以在不单击它们的情况下显示所有图钉的标题?

4

5 回答 5

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];
}
于 2012-07-05T10:32:22.730 回答
4

尝试这个。它会自动显示标题。

-(void)mapView:(MKMapView *)mapView1 didAddAnnotationViews:(NSArray *)views
{
    [self.mapView selectAnnotation:yourannotationpin animated:NO];
}
于 2012-07-05T10:09:08.143 回答
0

U 可以使用自定义注释视图来显示标题和子标题,而无需单击图钉。有一个自定义注释视图的教程。

此应用程序包含自定义注释视图

于 2012-07-05T10:07:06.210 回答
0

找不到 swift 版本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 )
        }
    }
}
于 2018-05-16T19:07:19.407 回答
-3

不,这是不可能的。您必须单击 pin Annotation 才能显示标题。

于 2012-07-05T09:53:42.917 回答