自动“canShowCallOut”注释IPHONE

时间:2010-03-20 16:36:28

标签: iphone sdk mapkit annotations

我可以调用自动打开我的注释(带标题,副标题等)的函数,而不是触摸mapview上的注释吗?

2 个答案:

答案 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];