【问题标题】:rotating MKMapView旋转 MKMapView
【发布时间】:2012-06-07 14:52:07
【问题描述】:

我有一个带有显示用户位置的 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 将按预期旋转,但用户位置不会居中,而是位于屏幕底部(与顶部的距离与纵向模式相同)。

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

有什么想法吗?

【问题讨论】:

    标签: ios ios5 mkmapview uiinterfaceorientation


    【解决方案1】:

    尝试在setAutoresizingMask: 中包含高度,以便在超级视图在旋转时更改其高度时,地图视图的高度将自动更改。现在,只有宽度在调整大小,所以地图中心的 y 位置不会改变。

    所以这一行:

    [myMapView setAutoresizingMask:UIViewAutoresizingFlexibleWidth];
    

    应该是:

    [myMapView setAutoresizingMask: 
        (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)];
    


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

    【讨论】:

    • 好的,谢谢 - 应该已经阅读了标志名称,直到它结束:) 关于居中:我实际上以不同的点为中心,而不仅仅是用户位置取决于用户输入。但是感谢您指出这一点...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多