为什么MKCircle不会显示在MKMapView iOS8上

Ber*_*rgP 3 iphone mapkit mkmapview ios

我创建了这样的新叠加层:

MKCircle *circle = [MKCircle circleWithCenterCoordinate:region.coordinate radius:region.radius];
[self.mapView addOverlay:circle];
Run Code Online (Sandbox Code Playgroud)

我也实现了委托方法:

- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay {
    MKCircleRenderer *circleRenderer = [[MKCircleRenderer alloc] init];
    circleRenderer.fillColor = [UIColor greenColor];
    circleRenderer.alpha = 1.f;
    return circleRenderer;
}
Run Code Online (Sandbox Code Playgroud)

代码的两个部分都被调用了,mapView!= nil当时,它是委托集,但是我在地图上看不到圆圈.

我究竟做错了什么?

Kam*_*pai 7

根据@Rob建议,您需要init MKCircleRenderer使用其他方法initWithCircle.

- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay {
    MKCircleRenderer *circleRenderer = [[MKCircleRenderer alloc] initWithCircle:overlay];
    circleRenderer.fillColor = [UIColor greenColor];
    circleRenderer.alpha = 1.f;
    return circleRenderer;
}
Run Code Online (Sandbox Code Playgroud)

还要确保栅栏距离足以在地图中看到圆圈.

例如:

CLLocationDistance fenceDistance = 100000;
MKCircle *circle = [MKCircle circleWithCenterCoordinate:region.coordinate radius:fenceDistance];
[self.mapView addOverlay:circle];
Run Code Online (Sandbox Code Playgroud)