我像这样创建新的叠加层:
MKCircle *circle = [MKCircle circleWithCenterCoordinate:region.coordinate radius:region.radius];
[self.mapView addOverlay:circle];
我还实现了委托(delegate)方法:
- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay {
MKCircleRenderer *circleRenderer = [[MKCircleRenderer alloc] init];
circleRenderer.fillColor = [UIColor greenColor];
circleRenderer.alpha = 1.f;
return circleRenderer;
}
两部分代码都被调用了,此时mapView != nil,是delegate set, 但我在 map 上看不到圆圈。
我做错了什么?
最佳答案
根据@Rob 的建议,您需要使用其他方法 initWithCircle
init
MKCircleRenderer
。
- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay {
MKCircleRenderer *circleRenderer = [[MKCircleRenderer alloc] initWithCircle:overlay];
circleRenderer.fillColor = [UIColor greenColor];
circleRenderer.alpha = 1.f;
return circleRenderer;
}
还要确保栅栏距离足够在 map 上可见圆圈。
例如:
CLLocationDistance fenceDistance = 100000;
MKCircle *circle = [MKCircle circleWithCenterCoordinate:region.coordinate radius:fenceDistance];
[self.mapView addOverlay:circle];
关于ios - 为什么MKCircle在MKMapView iOS8上不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28065686/