百度地图自定义标注及控制旋转

曾经在网上查了一晚上都没有查出来,需求是自定义标注,并让标注旋转,iOS里百度地图并没有提供给我们这个接口,那我们就自定义重写。

思想: 继承BMKAnnotationView这个类创建一个自定义的标注视图类,在这个类里添加一个imageView,我们通过控制这个imageView来控制标注的旋转。


在类的初始化方法里调用我们的imageView,imageView的大小可以自行设置,图片也是。

- (id)initWithAnnotation:(id)annotation reuseIdentifier:(NSString*)reuseIdentifier{

if(self= [superinitWithAnnotation:annotationreuseIdentifier:reuseIdentifier]) {

[selfimageView];

}

returnself;

}

- (UIImageView*)imageView {

if(_imageView==nil) {

_imageView= [[UIImageViewalloc]initWithFrame:CGRectMake(0,0,100,100)];

_imageView.image= [UIImageimageNamed:@"1"];

[selfaddSubview:_imageView];

//_imageView.backgroundColor =[UIColor blackColor];

}

return_imageView;

}

在- (BMKAnnotationView*)mapView:(BMKMapView*)mapView viewForAnnotation:(id

)annotation的代理方法里使用自定义的view来创建视图

newAnnotationView= [[CustomAnnotationViewalloc]initWithAnnotation:annotationreuseIdentifier:@"myAnnotation"];

returnnewAnnotationView;

我们可以通过按钮随机给自定义视图旋转角度,也可以通过定时器给,在我的demo里用的是按钮随机给。


旋转前


旋转后

demo用法:先添加一个自定义标注,然后不停的点击旋转的按钮,就可以看到自定义视图不停的旋转了。


Demo: https://github.com/edwardGG/-

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容