使用 UISlider 在 MKMapView 上将半径更改为 MKCircle

Posted

技术标签:

【中文标题】使用 UISlider 在 MKMapView 上将半径更改为 MKCircle【英文标题】:Change radius to MKCircle on MKMapView with UISlider 【发布时间】:2013-07-03 14:52:55 【问题描述】:

我正在尝试通过移动UISlider 来更改MKCircle 的半径。 问题是MKCircleradius 属性是只读

我是这样尝试的:

- (void)sliderValueChanged:(UISlider *)sender

    self.radiusLabel.text = [NSString stringWithFormat:@"%i mt", value];

    MKCircle * oldC = (MKCircle *)self.mapView.overlays[0];

    MKCircle * c = [MKCircle circleWithCenterCoordinate:self.lastLocation.coordinate radius:value];

    [self.mapView addOverlay:c];

    [self.mapView removeOverlay:oldC];

但是渲染速度非常慢,并且圆是逐块渲染的(就像石英中的 pdf 一样)。 有没有更好更快的方法来改变半径?

谢谢...

【问题讨论】:

【参考方案1】:

您可能对此问题的答案感兴趣:moving/updating MKOverlay on MKMapView

基本上,不是删除旧圆圈并添加一个新圆圈,而是调整当前圆圈并告诉地图视图重绘该区域。

【讨论】:

MKCircle 符合 MKOverlay 协议

以上是关于使用 UISlider 在 MKMapView 上将半径更改为 MKCircle的主要内容,如果未能解决你的问题,请参考以下文章

MKMapView 在 iDevice 上停止响应

在 MKMapView 上禁用指南针

MKAnnotations 已成功制作,但有时无法在 MKMapView 上呈现

如何在 iOS 中使用 MpMoviePlayerController 在 UISlider 上显示缓冲数据?

如何使用蓝点在我的 MKMapView 上显示我当前的位置和区域?

在 Firebase 数据库中的 MKMapView 上放置多个标记