问题标签 [mkmapviewdelegate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1118 浏览

ios - 使用 Core Graphics 在 MKMapView 上绘制自定义叠加层不会显示在地图上

我正在使用 iOS 7 并扩展了 MKOverlayPathRenderer,以便在 MKMap 上绘制自定义叠加层。

我已经实现了 MKOverlayPathRenderer 类的以下方法,并且 NSLog 输出显示当我期望时调用代码来绘制上下文。但是,自定义叠加层根本不会显示在地图上。

这是(MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id < MKOverlay >)overlay我的 MKMapViewDelegate 方法中的代码:

我真的很感激一些关于为什么这可能不会在 MKMapView 上呈现的线索。

非常感谢

0 投票
0 回答
195 浏览

ios - 地图视图。像 zoomDidChange 这样的回调

我想要回调,然后地图确实改变了缩放。

我尝试使用

但它回调,当变化是显着的。

0 投票
0 回答
266 浏览

ios - MKMapView:设置区域时未显示注释的标注

我在 上显示了几个自定义注释视图MKMapView,当用户点击其中一个时,我将区域更改为以它为中心:

我看到,当注释已经或多或少显示在地图的中心时,会显示标注,但是当我点击靠近地图边界的注释并且该区域必须“移动更多”时,它不会显示. 我尝试在区域设置动画结束后选择注释:

但标注均未显示。如果我在点击时没有以编程方式更改区域,则会显示所有标注。我怎么能解决这个问题?

谢谢

0 投票
2 回答
221 浏览

google-maps - MKMapView 不会缩小

我将地图以用户位置为中心,或者以默认位置为中心,缩放级别约为 30 英里。问题是我可以放大但不能缩小。

每当我尝试缩小我的 iPhone 5C 时,当我松开手指时,地图会立即重新放大。

我尝试添加 mapView 方法 regionDidChangeAnimated 和 didChangeDragState 以确保我正在重置视图的区域和中心,但这些似乎都没有改变缩小的能力。

无法弄清楚我在这里错过了什么。谢谢你的帮助!

0 投票
2 回答
391 浏览

ios - 在 MKMapView 中标记位置

我正在尝试在地图视图中标记一个位置。

首先,我MKAnnotation在这样的单独类中实现了协议。

地址注解.h

地址注释.m

然后在视图控制器中,我实现了MKMapViewDelegate.

viewDidLoad方法中,我初始化了一个AddressAnnotation类的实例。

我不断收到以下错误。

-[AddressAnnotation setCoordinate:]:无法识别的选择器发送到实例

我不确定我在这里做错了什么。有人可以帮我吗?

谢谢你。

0 投票
0 回答
75 浏览

ios - iOS MKMapView“错误无法确定附近的位置”

我正在实现一个 MKMapView 应用程序,它工作正常,但每次我在我的设备上安装应用程序进行测试时都会收到此错误。

在此处输入图像描述

在控制台上我没有看到任何错误。你们中的任何人都知道错误的原因或如何解决?

我会非常感谢你的帮助。

0 投票
1 回答
181 浏览

ios7 - 无法覆盖单点触控上的 GetRendererForOverlay

我想在我的上面画一个叠加层,MKMapView所以我定义了这个delegate类来定义叠加层的视图。但如您所见,似乎从 iOS 7 开始,建议我们使用GetRendererForOverlay而不是GetViewForOverlay. 问题是我找不到任何按名称GetRendererForOverlay覆盖的方法。用更好的话来说,似乎MKMapViewDelegate没有任何用于覆盖的虚拟方法GetRendererForOverlay。那么我们应该如何使用它呢?

我阅读了注释中建议的文档,但我没有找到任何关于 GetRendererForOverlay 的信息。

0 投票
1 回答
1858 浏览

objective-c - rendererForOverlay 没有被调用....从 MKOverlayView 更新到 MKOverlayRenderer

我有一个MKOverlayView类的工作扩展,mapview 委托完美地触发和执行 – mapView:viewForOverlay: 委托方法。因此,为了摆脱已弃用的类,我将扩展范围更改MKOverlayView为 extend MKOverlayRenderer... 这样做,但将viewForOverlay方法保留在适当的位置可以正常工作...。

但是,委托方法viewForOverlay也已弃用,因此我将其替换为rendererForOverlay与非弃用 API 保持一致的方法,并且它永远不会被触发...

的代表MapView已正确连接,(viewForOverlay工作证明了这一点,但是当我用rendererForOverlay它替换这个方法时,它永远不会触发......因此我的覆盖不会被绘制。这使得对我来说没有意义。

我非常茫然,唯一有效的版本和不有效的版本之间的不同就是这种方法。即使在我将我的类从MKOverlayView扩展更改为MKOverlayRenderer扩展之后,只要该viewForOverlay方法存在于委托中,覆盖仍然会绘制,它就会被调用。但是,当我将viewForOverlay委托方法替换为rendererForOverlaynada 方法时。

这是代码:

无论是扩展类还是MapOverlayView扩展类,此方法都可以正常工作,并且调用此委托方法并呈现覆盖。MKOverlayViewMKOverlayRenderer

对于这个方法,我确保MapOverlayView它总是在扩展MKOverlayRenderer,但委托方法永远不会被触发。为什么上面不推荐使用的方法总是被调用和工作,但下面正确的非不推荐使用的方法永远不会被触发?

0 投票
1 回答
57 浏览

ios - mapkit 委托的异常行为

我遇到了 MapKit 代表的异常行为

当我将注释添加到mapkit并将setdelegate添加到self时,不会调用此方法。但是当我将区域设置为

然后调用委托方法。我不知道为什么会这样。有人帮助

0 投票
2 回答
4479 浏览

ios - 检测结束拖动/缩放 MKMapView

有没有办法确定MKMapView拖动和缩放是否停止?

现在我已经添加了一个UIPanGestureRecognizer用于拖动的功能,但是当用户抬起手指时,即使地图正在滚动,MKMapView我也会立即收到。gestureRecognizer.state == UIGestureRecognizerStateEnded我试图弄清楚的是,当地图仍在移动和/或用户再次触摸地图以再次拖动地图时,如何防止为我的地图注释加载服务器数据?仅当地图停止移动和缩放并且在预定时间内静止不动时,才应调用数据加载机制。

这是我到目前为止实现的:

而选择器方法didDragMap:

}

选择器方法delayAddressResolving:正在从服务器加载所需的数据以显示我的注释信息。

欢迎所有笔记!