ios 高德地图 默认弹出吹出框(calloutView)

来源:互联网 发布:java迷宫游戏代码 编辑:程序博客网 时间:2024/05/20 23:34

最近项目中用到高德地图,其中一个功能是自定义calloutView(吹出框),网上的相关教程博客确实很多,官网上的介绍也很详细,最后我是照着官网上的步骤一步步实现了。其过程还算顺利,然而就在我以为做完了的时候,却发现需要点一下地图上的小图钉(pointAnnotaion)才能显示calloutView。根据需求是需要默认就显示calloutView的,一个简单的想法是在创建annotationView的时候设置一下它的属性。于是试了一下发现AnnotationView有select属性。这下好办!在mapView:viewForAnnotation:代理函数中,创建annotationView的时候设置一下就ok。运行一下,发现calloutView确实是默认就是弹出来了。但是又出现了另一个问题,自定义calloutView上的所有控件的值并没有传过来。这就奇怪了。这个问题困扰我很久。于是我准备在仔细看看自定义calloutView的整个过程,偶然在类MAAnnotationView中发现了一句话。

/*!
 @brief 设置是否处于选中状态, 外部如果要选中请使用mapView的selectAnnotation方法。
 */
@property (nonatomic, getter=isSelected) BOOL selected;

我了个去。原来默认弹出calloutView是用selectAnnotation函数呀。于是在创建MAPointAnnotation后,直接用selectAnnotation函数设置改pointAnnotattion默认显示。

至此,问题终于都解决了。虽然走了很多弯路,但结局是圆满的,很开心!哈哈!


0 0