• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - MKMapView:偏移贴图,使注解可见

[复制链接]
菜鸟教程小白 发表于 2022-12-11 20:21:10 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个 MapView,底部的补充 View 始终可见。有时,补充 View 会部分阻塞选定的 MKAnnotationView。当以编程方式选择注释时,有什么方法可以将 map 向上移动一点?

我现在使用的代码如下:

  mapView.selectAnnotation(selected, animated: true)
  mapView.showAnnotations([selected], animated: true)

enter image description here



Best Answer-推荐答案


我已经完成的代码:

    let coordinate = selected.coordinate
    let delta = CLLocationDegrees(0.003)
    let span = MKCoordinateSpan(latitudeDelta: delta, longitudeDelta: delta)
    let region = MKCoordinateRegion(center: coordinate, span: span)
    let rect = MKMapRectForCoordinateRegion(region: region)
    // Adjust padding here
    let insets = UIEdgeInsets(top: 0, left: 0, bottom: 150, right: 0)
    mapView.setVisibleMapRect(rect, edgePadding: insets, animated: true)



   // Convert CoordinateRegion to MapRect
  func MKMapRectForCoordinateRegion(region:MKCoordinateRegion) -> MKMapRect {
    let topLeft = CLLocationCoordinate2D(latitude: region.center.latitude + (region.span.latitudeDelta/2), longitude: region.center.longitude - (region.span.longitudeDelta/2))
    let bottomRight = CLLocationCoordinate2D(latitude: region.center.latitude - (region.span.latitudeDelta/2), longitude: region.center.longitude + (region.span.longitudeDelta/2))

    let a = MKMapPointForCoordinate(topLeft)
    let b = MKMapPointForCoordinate(bottomRight)

    return MKMapRect(origin: MKMapPoint(x:min(a.x,b.x), y:min(a.y,b.y)), size: MKMapSize(width: abs(a.x-b.x), height: abs(a.y-b.y)))
  }

关于ios - MKMapView:偏移贴图,使注解可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51246045/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap