我正在使用MapView來處理項目。你可以通過Tab鍵拖放一個別針並按住。當你選擇銷釘時,會出現一定半徑的圓。但是現在用戶應該決定圓圈的半徑。這應該可以通過UISlider進行。用UI滑塊動態更改MKCircle半徑
問題是,圓半徑不會動態變化。圓圈出現,您移動滑塊並沒有任何反應。再次取消選擇該引腳,將添加另一個帶有新的UISlider值的環。
當前代碼: 在.h文件中:
@property (retain, nonatomic) MKCircle *pinCircle;
在.m文件:
-(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view {
_radius.hidden= false;
CLLocation *pinLocation = [[CLLocation alloc] initWithLatitude:[(MKPointAnnotation*)[view annotation] coordinate].latitude longitude:[(MKPointAnnotation*)[view annotation] coordinate].longitude];
_pinCircle = [MKCircle circleWithCenterCoordinate:pinLocation.coordinate radius:_radius.value*1000];
[_mapView addOverlay:_pinCircle];
[_pinCircle autorelease];
}
-(void)mapView:(MKMapView *)mapView didDeselectAnnotationView:(MKAnnotationView *)view {
_radius.hidden= true;
}
- (MKOverlayView *)mapView:(MKMapView *)map viewForOverlay:(id <MKOverlay>)overlay
{
MKCircleView *circleView = [[MKCircleView alloc] initWithOverlay:overlay];
circleView.strokeColor = [UIColor greenColor];
circleView.fillColor = [[UIColor greenColor] colorWithAlphaComponent:0.4];
return [circleView autorelease];
}
我知道我必須要使用這個動作:
- (IBAction)radiusSliderChange:(id)sender {
NSLog(@"Slidervalue changed");
[self.pinCircle removeFromSuperview];
}
但這導致以下錯誤:
-[MKCircle removeFromSuperview]: unrecognized selector sent to instance 0x18b919d0
據亞歷杭德羅·F.卡雷拉的文章中,我得到了以下錯誤:
https://www.dropbox.com/s/saxhns992jex606/Bildschirmfoto%202014-09-04%20um%2020.20.21.png?dl=0
感謝您的回答,但我收到以下錯誤。看到我上面的編輯。 – Eric 2014-09-04 17:40:23
要刪除地圖上的所有引腳,可以使用[mapView removeOverlays:[mapView overlays]];試試吧:-) – stepik21 2014-09-04 18:28:51
謝謝@ stepik21我試圖重新創建圍欄使用滑塊..你的代碼行工作正常** [mapView removeOverlays:[mapView覆蓋]]; ** votup你的評論謝謝.. – vaibhav 2016-05-17 12:33:33