3

MKCircleを移動して の半径を変更しようとしていUISliderます。問題は、のradiusプロパティMKCirclereadonlyであることです。

私はこのようにしてみました:

- (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 のように)。半径を変更するためのより良い、より速い方法はありますか?

ありがとう...

4

1 に答える 1

0

この質問への回答に興味があるかもしれません: MKMapView での MKOverlay の移動/更新

基本的に、古い円を削除して新しい円を追加する代わりに、現在の円を調整し、マップビューにその領域を再描画するように指示します。

于 2013-07-03T20:08:03.963 に答える