我有一个特殊情况,我似乎无法理解。
我有一个全屏 map View 作为背景。在下半部分,我有一些其他元素,我需要为我的 map View 设置 map 区域,以便所有注释都可见并位于 View 的上半部分。
我可以找到所有注释的映射矩形。 我还可以找到上半部分的矩形 - 甚至将其转换为 map 矩形。
但是我如何关联这两个映射矩形,以便将适合注释的映射矩形移动(并挤压)到上半部分?
有人可以给我一些提示吗?
最佳答案
我曾经有过类似的设计,只不过它是针对单个注释而不是多个注释,但原则上是相同的。
在 ViewDidLayoutSubviews 中:
- 创建一个包含注释的 MKRegion 创建一个 CGPoint 位于 map 未覆盖部分的中心。
- 改变 您所在区域的中心到未覆盖的 map 部分的中心 通过使用 MKMapView.convert(point: toCooperativeFrom:)
- 显示新内容 通过调用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/