曾经在网上查了一晚上都没有查出来,需求是自定义标注,并让标注旋转,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/-
网友评论