首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将MKOverlayPathRenderer作为覆盖添加到MKMapView中将获得异常

将MKOverlayPathRenderer作为覆盖添加到MKMapView中将获得异常
EN

Stack Overflow用户
提问于 2014-07-15 10:10:19
回答 1查看 2.1K关注 0票数 1

主题中的所有内容,下面是代码

代码语言:javascript
复制
- (void)viewDidLoad
{
     [super viewDidLoad];
     // Do any additional setup after loading the view, typically from a nib.
     _pathRenderer = [[MKOverlayPathRenderer alloc] init];
     _pathRenderer.lineWidth = 8.0f;
     _pathRenderer.strokeColor = [UIColor redColor];
     _pathRenderer.path = CGPathCreateMutable();
     [_mapView addOverlay:_pathRenderer];
}

在最后一行中,除例外情况外:

代码语言:javascript
复制
  Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[MKOverlayPathRenderer boundingMapRect]: unrecognized selector 

这意味着我使用了错误的类,没有实现MKOverlay,我得到了它,但是正如在MKOverlayPathRenderer中提到的,它确实实现了。所以我有点困在这个问题上了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-15 12:06:39

MKOverlayPathRenderer不实现MKOverlay协议。

addOverlay需要一个符合MKOverlay协议的对象。

您要给它的对象没有这样做,因此您得到了异常(实现MKOverlay的对象必须有一个boundingMapRect属性)。

在你的问题中,声明:

正如在MKOverlayPathRenderer中提到的,它确实如此

没有道理。

文档并没有说MKOverlayPathRenderer实现了MKOverlayMKOverlayPathRendererMKOverlayRendererNSObject的子类。它只符合NSObject协议。

MKOverlayPathRenderer绘制符合MKOverlay的模型覆盖对象的可视化表示。

因此需要两个单独的对象(类似于注释的工作方式):

  1. 覆盖的模型--实现MKOverlay的东西。
  2. 覆盖的视图-- MKOverlayRenderer的一些子类(或iOS 7之前的MKOverlayView )。

这个过程首先给MKMapView使用addOverlay:addOverlays:方法的模型对象。

然后,在rendererForOverlay委托方法中,当地图视图实际想要显示一些覆盖时,它将调用该方法,您将为所讨论的覆盖创建并返回一个呈现器(视图)。

创建呈现器的代码通常在rendererForOverlay委托方法中,应该使用initWithOverlay方法(而不是init),并且应该传递要为其创建呈现器的overlay模型对象。

对于addOverlay,您将创建一些覆盖模型对象--一些标准类,如MKPolylineMKPolygonMKCircle或自定义类。

但是你确定你需要一个MKOverlayPathRenderer**?** ()吗

如果您只想绘制一条简单的线、圆或多边形,请使用已经为您自动绘制这些对象的渲染器。您将有一个比创建您自己的MKOverlayPathRenderer子类容易得多的时间。

MKPolylineRendererMKPolygonRendererMKCircleRendererMKOverlayPathRenderer的内置子类,它们可以绘制相关的模型覆盖,而无需编写任何绘图代码。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24755462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档