ios - 如何在 map View 的上半部分显示注释?

标签 ios mkmapview

我有一个特殊情况,我似乎无法理解。

我有一个全屏 map View 作为背景。在下半部分,我有一些其他元素,我需要为我的 map View 设置 map 区域,以便所有注释都可见并位于 View 的上半部分。

enter image description here

我可以找到所有注释的映射矩形。 我还可以找到上半部分的矩形 - 甚至将其转换为 map 矩形。

但是我如何关联这两个映射矩形,以便将适合注释的映射矩形移动(并挤压)到上半部分?

有人可以给我一些提示吗?

最佳答案

我曾经有过类似的设计,只不过它是针对单个注释而不是多个注释,但原则上是相同的。

在 ViewDidLayoutSubviews 中:

  1. 创建一个包含注释的 MKRegion 创建一个 CGPoint 位于 map 未覆盖部分的中心。
  2. 改变 您所在区域的中心到未覆盖的 map 部分的中心 通过使用 MKMapView.convert(point: toCooperativeFrom:)
  3. 显示新内容 通过调用mapView.setRegion(region,animated: false)居中

您需要弄清楚哪个区域包含您的注释(并不难,只需找到最大和最小纬度、经度并添加填充即可)。这是其余部分的示例代码:

        let point = CGPoint(x: mapView.bounds.size.width/2, y: -100)
        region.center = mapView.convert(point, toCoordinateFrom: mapView)
        mapView.setRegion(region, animated: false)

关于ios - 如何在 map View 的上半部分显示注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47346323/

相关文章:

ios - 如何让循环等到 block 完成?

iphone - MKMapView 和 CLLocationManager

ios 6 - 允许用户在街上创建 map 注释的应用程序返回具有相同坐标的多个注释

ios - 更改 MKmapView 中图钉的颜色会将新图钉图像以及当前位置变成旧图钉图像?

ios - 创建注释数组以便在 map 上制作不同的标注 View

ios - 顶部和底部没有 Storyboard黑色面板的应用程序

ios - UIAppearence 只适用于 iOS 中的系统颜色?

ios - 具有不同 uv 坐标的 OpenGL ES 1 多纹理

ios - 如何更改 UIDatePicker 的背景颜色?在 swift 3.0

iphone - MKMapView 在点击时隐藏导航栏,就像在照片应用程序中一样,而不会丢失 MKMapView 的功能