iOS 百度地图如何自定义弹出汽泡 使用百度官方提供的方法

本文提供了一种解决百度地图自定义汽泡弹出方式的问题,通过研究官方代码并添加自定义视图,实现了汽泡的点击事件功能。教程包括找到汽泡视图的方法和自定义汽泡的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 当收到这个需求的时候,我可以很苦恼的,因为百度地图没有给相关demo,网上搜了一些解决方案,但是我觉得也不尽完善,最终还是回到了百度提供的代码去研究,无意中发现了一个很好的解决方案;

其实百度还是提供了自定义汽泡的方法,只是官方的demo里面没有展现出来;

下面上代码;

- (void)mapView:(BMKMapView *)mapView didSelectAnnotationView:(BMKAnnotationView*)view;

相信很多人都知道这个方法,我用到这个方法的时候是为了给弹出的汽泡添加点击事件;

使用

    NSArray* subviews = [[view superview]subviews];

    BMKActionPaopaoView* paopao;

    

    for (UIView* subview  in subviews) {

        if([subview isKindOfClass:[BMKActionPaopaoView class]])

        {

            paopao = (BMKActionPaopaoView*)subview;

            break;

        }

        

    }

这些代码可以找到汽泡那个view,仔细研究百度提供的源代码不难发现它的类型是BMKActionPaopaoView;

这样子获取到了汽泡,再添加点击方法就是水到渠成的事;


===========================================

如上内容为发现思路,可以不看,重点在下面;


下面说关键怎么自定义汽泡

- (BMKAnnotationView*)mapView:(BMKMapView *)mapView viewForAnnotation:(id<BMKAnnotation>)annotation

在这个方法里面添加一两行代码就能实现;

    BMKActionPaopaoView* actionPaopaoView = [[BMKActionPaopaoView allocinitWithCustomView:customeView];

   

    newAnnotationView.paopaoView = actionPaopaoView;


这个customeView可以是任意UIView或UIView的子类;


到此为止自定义弹出汽泡的需求就完成了,如果想对弹出的汽泡的一些button添加点击方法;


本人亲测直接添加addTarget这个方法貌似不管用,如果有朋友测试成功的话可以交流;

关于添加点击事件的方法在另外一篇文章




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值