Ios 旋转MKMapView
我有一个可以工作的应用程序,它有一个显示用户位置的MKMapView。到目前为止,一切顺利:Ios 旋转MKMapView,ios,ios5,mkmapview,uiinterfaceorientation,Ios,Ios5,Mkmapview,Uiinterfaceorientation,我有一个可以工作的应用程序,它有一个显示用户位置的MKMapView。到目前为止,一切顺利: - (void)viewDidLoad { ... [myMapView setAutoresizingMask:UIViewAutoresizingFlexibleWidth]; [myMapView setUserTrackingMode:MKUserTrackingModeFollow animated:YES]; } 现在,我允许界面旋转: - (BOOL)shouldAut
- (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
,则不需要手动将地图居中于用户位置(地图将自动执行此操作)。您可能已尝试手动将其居中以解决高度问题,但修复自动调整大小遮罩应消除明确居中的需要。好的,谢谢-应该阅读标志名称,直到其结束:)和关于居中:我实际上为不同点居中,而不仅仅是用户输入的用户位置。但感谢您指出这一点…好的,谢谢-应该一直读到它的结束:)和关于居中:我实际上为不同的点居中,而不仅仅是用户位置取决于用户输入。但是谢谢你指出这一点。。。