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

ios - 旋转 MKMapView

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

我有一个带有显示用户位置的 MKMapView 的工作应用程序。到目前为止,一切顺利:

- (void)viewDidLoad {
   ...
   [myMapView setAutoresizingMask:UIViewAutoresizingFlexibleWidth];
   [myMapView setUserTrackingMode:MKUserTrackingModeFollow animated:YES];
}

现在,我允许界面旋转:

- (BOOL)shouldAutorotateToInterfaceOrientationUIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations.
    return YES;
}

如果我现在将设备和中心转到用户位置

   [myMapView setCenterCoordinate:[myMapView userLocation].coordinate animated:YES];

mapView 将按预期旋转,但用户位置不会居中,而是位于屏幕底部(与顶部的距离与纵向模式相同)。

不过,我希望它居中......

有什么想法吗?



Best Answer-推荐答案


尝试在 setAutoresizingMask: 中包含高度,这样当 super View 在旋转时改变其高度时, map View 的高度会自动改变。现在,只有宽度在调整大小,所以 map 中心的 y 位置不会改变。

所以这一行:

[myMapView setAutoresizingMask:UIViewAutoresizingFlexibleWidth];

应该是:

[myMapView setAutoresizingMask: 
    (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)];


此外,如果您将跟踪模式设置为 MKUserTrackingModeFollow( map 会自动执行此操作),则无需手动将 map 置于用户位置的中心。您可能已经尝试手动将其居中以解决高度问题,但修复自动调整蒙版应该消除显式居中的需要。

关于ios - 旋转 MKMapView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10865945/

回复

使用道具 举报

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

本版积分规则

关注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