Ios 旋转MKMapView

Ios 旋转MKMapView,ios,ios5,mkmapview,uiinterfaceorientation,Ios,Ios5,Mkmapview,Uiinterfaceorientation,我有一个可以工作的应用程序,它有一个显示用户位置的MKMapView。到目前为止,一切顺利: - (void)viewDidLoad { ... [myMapView setAutoresizingMask:UIViewAutoresizingFlexibleWidth]; [myMapView setUserTrackingMode:MKUserTrackingModeFollow animated:YES]; } 现在,我允许界面旋转: - (BOOL)shouldAut

我有一个可以工作的应用程序,它有一个显示用户位置的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];
地图视图将按预期旋转,但用户位置不会居中,而是在屏幕底部(与顶部的距离与纵向模式下的距离相同)

但我希望它能居中进行


有什么想法吗?

尝试在
设置AutoResizingMask:
中包含高度,这样当superview在旋转时更改其高度时,地图视图的高度将自动更改。现在,只有宽度在调整大小,因此地图中心的y位置不会改变

所以这一行:

[myMapView setAutoresizingMask:UIViewAutoresizingFlexibleWidth];
应该是:

[myMapView setAutoresizingMask: 
    (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)];


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

尝试在
设置自动调整大小遮罩:
中包含高度,以便当superview在旋转时更改其高度时,地图视图的高度将自动更改。现在,只有宽度在调整大小,因此地图中心的y位置不会改变

所以这一行:

[myMapView setAutoresizingMask:UIViewAutoresizingFlexibleWidth];
应该是:

[myMapView setAutoresizingMask: 
    (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)];


此外,如果将跟踪模式设置为
MKUserTrackingModeFollow
,则不需要手动将地图居中于用户位置(地图将自动执行此操作)。您可能已尝试手动将其居中以解决高度问题,但修复自动调整大小遮罩应消除明确居中的需要。

好的,谢谢-应该阅读标志名称,直到其结束:)和关于居中:我实际上为不同点居中,而不仅仅是用户输入的用户位置。但感谢您指出这一点…好的,谢谢-应该一直读到它的结束:)和关于居中:我实际上为不同的点居中,而不仅仅是用户位置取决于用户输入。但是谢谢你指出这一点。。。