问题标签 [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 回答
676 浏览

ios - MKMapView 的委托未被调用

我有一个UIViewController类来管理这样的MKMapView定义:

在这个视图控制器的实现中,我有:

作为centerMapInLoc:我从另一个视图控制器调用的公共方法。注解是在此类方法中创建的,但viewForAnnotation:添加注解时不会调用委托方法。我不明白为什么,因为委托是在loadView方法中设置的。

提前致谢

0 投票
0 回答
166 浏览

ios - mapView didUpdateUserLocation 不刷新

当应用程序状态更改为“applicationEnterBackground”时,-mapView didUpdateUserLocation 方法不会刷新,因此接收设备的位置是不可能的。所以我无法将用户的行进路线绘制到地图上。它仅从用户开始步行的点到用户停止步行的终点绘制一条线。

有什么方法可以在 applicationEnterBackground 状态下绘制用户行进的道路。

0 投票
0 回答
74 浏览

ios - 需要自定义注释视图 调用视图显示时双击以打开详细注释视图

**这里首先,我们创建自定义注释视图,其中包含图像、按钮和其他信息。我们放在地图上作为图像标记。这里我们还隐藏了调用视图。

第二个条件仅包含地图标记图像并显示调出视图。现在,问题是如果调用视图打开然后我们单击自定义视图它是必需的双击。

我们回顾了第一次点击调用 Map 取消选择方法,然后在我们获得按钮点击事件之后。

如果我们仅单击不同的调用视图或不同的自定义图像标记视图,那么它正在单击。在这种情况下,我如何在单击时处理这两种情况?**

0 投票
1 回答
459 浏览

ios - Swift:在 didDeselectAnnotationView 调用后,MKMapView 注释出现在左上角

MKMapView在我的 iOS 应用程序中画了一个,在这张地图上有一些注释,用自定义图像表示它们。选择特定注释时,图像会发生轻微变化(发光)。

为此,我使用mapView(mapView: MKMapView!, didSelectAnnotationView view: MKAnnotationView!)委托方法来更改图像(通过更改view.annotation.image)。这似乎工作正常。

但是,当我在mapView(mapView: MKMapView!, didDeselectAnnotationView view: MKAnnotationView!)取消选择后使用该方法将图像改回时,它会重新绘制地图左上角的注释。任何与地图的用户交互都会立即将其重新绘制到适当的位置,因此在方法调用之后地图不会被刷新,直到单击或进行某些操作。

这实际上是更改注释图像的正确方法(通过覆盖当前的view.annotation.image,如果是的话,有没有办法刷新地图?

编辑:我也刚刚注意到,每次选择新注释时,它都会将地图中心向下拖动约 100 像素。在调用上面提到的这两种方法中的任何一种后,我需要做些什么吗?

0 投票
1 回答
4271 浏览

ios - MKAnnotation Pin 不会拖动,即使设置为可拖动

多年来,我一直试图在地图视图上放置可拖动的注释。(我使用的是默认图钉,而不是我自己的图钉)到目前为止,我只能在设定的坐标处显示它(真的不是什么成就),我需要首先获取注释才能对被选中做出反应,它没有永远不会被didChangeDragStatefunc 接收。然后我需要能够拖动它,将其放置在新位置并获取新位置的坐标。

我对 Swift 相当陌生,但我承担了一个相当困难的项目。我已经查看了几乎所有可以在谷歌上找到的“ MKAnnotationSwift 中的可拖动 mapkit”和类似变体。(编辑:我没有找到任何可以阐明我的问题的答案,所有其他答案都给出了如何上传个性化MKAnnotation的答案。他们都有标题字段,但没有一个答案提到标题字段是必要的,这结果是主要问题。他们只提到我应该设置dragState来控制引脚的移动,但在我的情况下这结果是不正确的,如下所示)无论如何 !下面是我尝试实现 mapView 并添加注释的代码。

随着扩展:

我还有一个自定义 PinAnnotation 类:

0 投票
1 回答
1257 浏览

ios - mapView 声明上的 Swift 编译器错误

我升级到更新的 Swift 编译器并遇到了这个编译器错误,我不知道如何解决。我有一堆从 MKMapViewDelegate 声明的 mapView 函数。除了引发此错误的这个之外,它们似乎都匹配:

ViewController.swift:137:10:Objective-C 方法 'mapView:viewForAnnotation:' 提供​​的方法 'mapView( :viewForAnnotation:)' 与协议 'MKMapViewDelegate' 中的可选要求方法 'mapView( :viewForAnnotation:)' 冲突</p >

ViewController.swift:12:7:“ViewController”类在此处声明符合协议“MKMapViewDelegate”

/ViewController.swift:137:10: 此处声明的需求'mapView(_:viewForAnnotation:)' (MapKit.MKMapViewDelegate)

我查看了 MKMapViewDelegate 方法,我认为我正确匹配了它,所以我对需要更正的更改感到困惑。从那里我看到

可选 func mapView(mapView: MKMapView!, viewForAnnotation annotation: MKAnnotation!) -> MKAnnotationView!

这是我下面的声明,它会引发错误。

0 投票
2 回答
3536 浏览

ios - MKAnnotationView 标注的自定义字体

幸运的是,an 的标准标注视图MKAnnotationView满足了我们的需求 - titlesubtitleleftCalloutAccessoryViewrightCalloutAccessoryView.

不幸的是,我们在我们的应用程序中使用自定义字体,并希望将这些自定义字体扩展到这些标注。

MKAnnotationView 没有提供标准的方法来实现这一点。

如何在MKAnnotation的标注视图中使用自定义字体?

0 投票
0 回答
187 浏览

ios - 根据用户位置航向变换Annotationview

我正在尝试根据用户位置标题方向转换注释视图。注释视图未正确更改。

0 投票
3 回答
1789 浏览

ios - 在 iOS 7+ MKMapView 调用 mapView:didUpdateUserLocation: 永远

在我MapView的按钮点击中,我运行以下操作:

我看到userLocation pin并调用以下方法来更改地图位置:

我的问题是地图正在永远更新用户的位置(循环中)。激活用户位置后无法使用地图。有什么必要让它停止更新用户的位置并允许用户使用地图?

该方法mapView:didUpdateUserLocation:被一遍又一遍地调用。我把 放在MKMapViewDelegate界面上,设置self.mapView.delegate为 self 并设置mapViewWillStartLocatingUser:andmapViewDidStopLocatingUser:只用一个Dlog(@"")电话;mapViewDidStopLocatingUser:永远不会被调用。

0 投票
1 回答
2733 浏览

swift - Swift 2 MKMapViewDelegate rendererForOverlay 可选性

在 Swift 1.2 我有这个:

Swift 2 已将定义更改 mapView:rendererForOverlay为 now returnMKOverlayRenderer而不是MKOverlayRenderer!,并且现在不允许我返回nil(不出所料) as MKOverlayRendereris not NilLiteralConvertible。但是,文档(在 Xcode 7 中)仍然说:

返回值

在地图上呈现指定叠加层时使用的渲染器。如果返回 nil,则不会为指定的叠加对象绘制任何内容。

如果通过了我不认识的覆盖,我应该返回什么?