相关疑难解决方法(0)

动画删除注释

我有一个地图和一组注释,每个都有一个'父'属性.目前,当我添加注释时,我实现了didAddAnnotationViews方法来为这些注释设置动画,使它们看起来像是来自父级的坐标.在删除注释期间有没有办法做到这一点?当我从地图中删除注释时,我希望它为其父坐标设置动画,据我所知,当删除注释时,didAddAnnotationViews没有等效物.

objective-c mkmapview mkannotation mkannotationview ios

13
推荐指数
2
解决办法
6676
查看次数

MapKit:更新 MKCircle 叠加层的半径属性而不闪烁

我有一个MKMapView (self.mapView),其中添加了具有特定半径 (self.location.radius) 的MKCircle覆盖 (self.radiusOverlay)。

MKMapView正下方有一个UISlider (self.radiusSlider),它可以在Value Changed上更改叠加层的半径:

- (void)viewWillAppear:(BOOL)animated {

    self.radiusOverlay = [MKCircle circleWithCenterCoordinate:CLLocationCoordinate2DMake([self.location.latitude floatValue], [self.location.longitude floatValue]) radius:[self.location.radius floatValue]];

    [self.mapView addOverlay:self.radiusOverlay];

    self.radiusSlider.value = [self.location.radius floatValue];
}
Run Code Online (Sandbox Code Playgroud)

这是进行半径更新的方法:

- (IBAction)updateLocationRadius:(UISlider *)sender {

    [self.mapView removeOverlay:self.radiusOverlay];

    self.location.radius = [NSNumber numberWithFloat:sender.value];

    self.radiusOverlay = [MKCircle circleWithCenterCoordinate:CLLocationCoordinate2DMake([self.location.latitude floatValue], [self.location.longitude floatValue]) radius:[self.location.radius floatValue]];
    [self.mapView addOverlay:self.radiusOverlay];
}
Run Code Online (Sandbox Code Playgroud)

这工作正常,但看起来不太好:通过删除并重新添加self.radiusOverlay我导致覆盖层闪烁。

我该怎么做才能避免这种闪烁?

objective-c mapkit

5
推荐指数
0
解决办法
3180
查看次数