我正在iPhone上编写一个地图应用程序,并希望在用户改变方向时旋转地图。我已经阅读了stackoverflow上的大部分帖子。如果我们使用iOS 5或更高版本,他们中的大多数建议使用setUserTrackingMode
和MKUserTrackingModeFollowWithHeading
。由于某种原因,这似乎不适合我。以下是我的代码:
-(IBAction)getLocation //This is a button
{
mapView.showsUserLocation=YES; //mapView is the instance of MKMapView
[mapView setUserTrackingMode:MKUserTrackingModeFollowWithHeading animated:YES];
}
这仅显示用户位置,但如果我移动手机,则不会旋转。 还有一件事是,我从互联网上下载了一个项目,并且我包含了这一行。它只是第一次在那里工作。我不知道为什么会这样。
有什么建议吗?
答案 0 :(得分:2)
更简单的方法是添加MKUserTrackingBarButtonItem
而不是创建自己的按钮。它的行为与iOS 5地图应用程序中的按钮完全相同,并且易于设置。
以下是如何使用它:
// You should have an outlet to your map view called mapView
MKUserTrackingBarButtonItem *userTrackingButton;
userTrackingButton = [[MKUserTrackingBarButtonItem alloc] initWithMapView:self.mapView];
// You need an outlet to your toolbar too
[self.toolbar setItems:[NSArray arrayWithObject:userTrackingButton]];
答案 1 :(得分:1)
你需要等待'MapView'完成加载......
<强>遵循:强>
- (void)mapViewDidFinishLoadingMap:(MKMapView *)mapView {
mapView.userTrackingMode = MKUserTrackingModeFollow;
}
关注&amp;标题:强>
- (void)mapViewDidFinishLoadingMap:(MKMapView *)mapView {
mapView.userTrackingMode = MKUserTrackingModeFollowWithHeading;
}
答案 2 :(得分:-1)
将“动画”更改为“动画”,然后重试