gpt4 book ai didi

ios - 旋转 MKMapView

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:49:50 25 4
gpt4 key购买 nike

我有一个正在运行的应用程序,其中包含一个显示用户位置的 MKMapView。到目前为止,还不错:

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

现在,我允许界面旋转:

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

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

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

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

不过我希望它居中……

有什么想法吗?

最佳答案

尝试在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com