问题标签 [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.
ios - MKMapView 的委托未被调用
我有一个UIViewController
类来管理这样的MKMapView
定义:
在这个视图控制器的实现中,我有:
作为centerMapInLoc:
我从另一个视图控制器调用的公共方法。注解是在此类方法中创建的,但viewForAnnotation:
添加注解时不会调用委托方法。我不明白为什么,因为委托是在loadView
方法中设置的。
提前致谢
ios - mapView didUpdateUserLocation 不刷新
当应用程序状态更改为“applicationEnterBackground”时,-mapView didUpdateUserLocation 方法不会刷新,因此接收设备的位置是不可能的。所以我无法将用户的行进路线绘制到地图上。它仅从用户开始步行的点到用户停止步行的终点绘制一条线。
有什么方法可以在 applicationEnterBackground 状态下绘制用户行进的道路。
ios - 需要自定义注释视图 调用视图显示时双击以打开详细注释视图
**这里首先,我们创建自定义注释视图,其中包含图像、按钮和其他信息。我们放在地图上作为图像标记。这里我们还隐藏了调用视图。
第二个条件仅包含地图标记图像并显示调出视图。现在,问题是如果调用视图打开然后我们单击自定义视图它是必需的双击。
我们回顾了第一次点击调用 Map 取消选择方法,然后在我们获得按钮点击事件之后。
如果我们仅单击不同的调用视图或不同的自定义图像标记视图,那么它正在单击。在这种情况下,我如何在单击时处理这两种情况?**
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 像素。在调用上面提到的这两种方法中的任何一种后,我需要做些什么吗?
ios - MKAnnotation Pin 不会拖动,即使设置为可拖动
多年来,我一直试图在地图视图上放置可拖动的注释。(我使用的是默认图钉,而不是我自己的图钉)到目前为止,我只能在设定的坐标处显示它(真的不是什么成就),我需要首先获取注释才能对被选中做出反应,它没有永远不会被didChangeDragState
func 接收。然后我需要能够拖动它,将其放置在新位置并获取新位置的坐标。
我对 Swift 相当陌生,但我承担了一个相当困难的项目。我已经查看了几乎所有可以在谷歌上找到的“ MKAnnotation
Swift 中的可拖动 mapkit”和类似变体。(编辑:我没有找到任何可以阐明我的问题的答案,所有其他答案都给出了如何上传个性化MKAnnotation
的答案。他们都有标题字段,但没有一个答案提到标题字段是必要的,这结果是主要问题。他们只提到我应该设置dragState来控制引脚的移动,但在我的情况下这结果是不正确的,如下所示)无论如何 !下面是我尝试实现 mapView 并添加注释的代码。
随着扩展:
我还有一个自定义 PinAnnotation 类:
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!
这是我下面的声明,它会引发错误。
ios - MKAnnotationView 标注的自定义字体
幸运的是,an 的标准标注视图MKAnnotationView
满足了我们的需求 - title
、subtitle
、leftCalloutAccessoryView
和rightCalloutAccessoryView
.
不幸的是,我们在我们的应用程序中使用自定义字体,并希望将这些自定义字体扩展到这些标注。
MKAnnotationView 没有提供标准的方法来实现这一点。
如何在MKAnnotation
的标注视图中使用自定义字体?
ios - 根据用户位置航向变换Annotationview
我正在尝试根据用户位置标题方向转换注释视图。注释视图未正确更改。
ios - 在 iOS 7+ MKMapView 调用 mapView:didUpdateUserLocation: 永远
在我MapView
的按钮点击中,我运行以下操作:
我看到userLocation pin
并调用以下方法来更改地图位置:
我的问题是地图正在永远更新用户的位置(循环中)。激活用户位置后无法使用地图。有什么必要让它停止更新用户的位置并允许用户使用地图?
该方法mapView:didUpdateUserLocation:
被一遍又一遍地调用。我把 放在MKMapViewDelegate
界面上,设置self.mapView.delegate
为 self 并设置mapViewWillStartLocatingUser:
andmapViewDidStopLocatingUser:
只用一个Dlog(@"")
电话;mapViewDidStopLocatingUser:
永远不会被调用。
swift - Swift 2 MKMapViewDelegate rendererForOverlay 可选性
在 Swift 1.2 我有这个:
Swift 2 已将定义更改 mapView:rendererForOverlay
为 now returnMKOverlayRenderer
而不是MKOverlayRenderer!
,并且现在不允许我返回nil
(不出所料) as MKOverlayRenderer
is not NilLiteralConvertible
。但是,文档(在 Xcode 7 中)仍然说:
返回值
在地图上呈现指定叠加层时使用的渲染器。如果返回 nil,则不会为指定的叠加对象绘制任何内容。
如果通过了我不认识的覆盖,我应该返回什么?