作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当使用 MKCoordinateRegionMakeWithDistance 为 MKMapView 设置区域时,生成的区域总是给出错误的结果,其中的尺寸总是比我为其他手机型号获得的最佳尺寸略大。
例如,做:
let region = MKCoordinateRegionMakeWithDistance(someLocation, 400, 200)
let adjustedRegion = mapView.regionThatFits(region)
mapView.setRegion(adjustedRegion, animated: true)
(定义mapview的纵横比为2:1)
总是会产生垂直 420 米、水平 210~ 米的 View ,而其他手机型号不会出现这种情况。
可以理解,这是为了找到指定尺寸的“最佳拟合”区域,我担心的是 iPhone X 上的结果有所不同。 (在型号 8、8+、5s 上)
对于带有 mapViews 的 iPhone X 型号,我需要做些什么吗?
最佳答案
事实证明,mapkit 的 mapView 的 MKCoordinateRegionMakeWithDistance 会在没有安全区域插图的情况下进行计算。
由于我的 mapView 设置在屏幕底部,因此在应用垂直距离时,需要进行一些缩减以补偿这种奇怪的行为。
let verticalDistance = 400 * ((mapView.bounds.height - mapView.safeAreaInsets.bottom) / mapView.bounds.height )
let region = MKCoordinateRegionMakeWithDistance(someLocation, verticalDistance, 200)
let adjustedRegion = mapView.regionThatFits(region)
mapView.setRegion(adjustedRegion, animated: true)
这使得 mapView 的结果区域在垂直和水平距离上是正确的(与谷歌地图的网络距离测量工具相比)
关于swift - MKCoordinateRegion Make With Distance 在手机上给出了错误的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50520299/
我是一名优秀的程序员,十分优秀!