ios - 为什么MKCircle在MKMapView iOS8上不显示

标签 ios iphone mkmapview mapkit

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

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/

相关文章:

MKUserTrackingModeFollowWithHeading 的 iOS 6 map 问题

swift - MKAnnotation协议(protocol)继承

ios4 - 如何在MKMapView上捕获轻击手势

ios - 使用外部起点触发 UIPanGestureRecognizer

iphone - glClear() 如何提高性能?

iphone - friend 的 friend /二级 friend 的名单。脸谱图 API

javascript - ipad焦点输入时如何隐藏键盘

ios - 处理 Firebase childDeleted 和 childModified 观察者 Swift

ios - 非通用类的通用扩展?

ios - 如何更改 ios APP 字体为印地语或泰米尔语