如何将操作选择器添加到注释视图上的弹出气泡中 [英] How to add Action selector to the popup bubble on Annotation view

查看:18
本文介绍了如何将操作选择器添加到注释视图上的弹出气泡中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对 MapKit 的实现很陌生

I have very new to MapKit Implementation

在我的应用中,一页是地图视图

In my app one page is to be map View

因为我已经显示了大量的图钉及其注释操作.

in that I have displayed bulk amount of pins and their Annotation actions.

我在弹出气泡上添加了一个披露者按钮,并为这些披露者按钮设置了如下所示的操作.

当点击那个灰色气泡时我想要同样的动作

//To add a discloser button to show route map
        UIButton *detailBtn=[UIButton buttonWithType:UIButtonTypeDetailDisclosure];
        pinView.rightCalloutAccessoryView=detailBtn;
        [detailBtn addTarget:self action:@selector(showRoute:) forControlEvents:UIControlEventTouchUpInside];
        DisplayMap *ann=(DisplayMap *)annotation;
        detailBtn.tag = ann.detailButtonTag;



//viewForAnnotation DELEGATE for annotions
-(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:
(id <MKAnnotation>)annotation {
    MKPinAnnotationView *pinView = nil;
    if(annotation != mapView.userLocation)
    {
        static NSString *defaultPinID = @"com.invasivecode.pin";
        pinView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
        if ( pinView == nil ) pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:defaultPinID] ;
        pinView.pinColor = MKPinAnnotationColorRed;
        pinView.canShowCallout = YES;
        pinView.animatesDrop = YES;

        //To add a discloser button to show route map
        UIButton *detailBtn=[UIButton buttonWithType:UIButtonTypeDetailDisclosure];
        pinView.rightCalloutAccessoryView=detailBtn;
        [detailBtn addTarget:self action:@selector(showRoute:) forControlEvents:UIControlEventTouchUpInside];
        DisplayMap *ann=(DisplayMap *)annotation;
        detailBtn.tag = ann.detailButtonTag;
    }
    else
    {
        [mapView.userLocation setTitle:@"I am here"];
    }
    return pinView;
}

但我想在点击那个灰色气泡时采取同样的行动..

But i Want to Same action When tap on that gray bubble..

怎么做

推荐答案

MKMapViewDelegate :

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view

有关如何使用这些方法的更多详细信息,您可以查看 Rob 的答案.

For more detail on how to use these methods, you can check the Answer by Rob.

更新:

为此,您可以使用 自定义标注.您可以使用showRoute"方法创建自定义按钮,并将其作为子视图添加到自定义标注内容视图中.

For that you can use Custom Callout. You can create Custom Button with the "showRoute" methods and add as a Sub view to the Custom Callout Content View.

这篇关于如何将操作选择器添加到注释视图上的弹出气泡中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆