SetUserTrackingMode不起作用

时间:2012-08-13 20:53:59

标签: iphone ios5 mkmapview

我正在iPhone上编写一个地图应用程序,并希望在用户改变方向时旋转地图。我已经阅读了stackoverflow上的大部分帖子。如果我们使用iOS 5或更高版本,他们中的大多数建议使用setUserTrackingModeMKUserTrackingModeFollowWithHeading。由于某种原因,这似乎不适合我。以下是我的代码:

-(IBAction)getLocation  //This is a button
{
    mapView.showsUserLocation=YES;  //mapView is the instance of MKMapView
    [mapView setUserTrackingMode:MKUserTrackingModeFollowWithHeading animated:YES];
}

这仅显示用户位置,但如果我移动手机,则不会旋转。 还有一件事是,我从互联网上下载了一个项目,并且我包含了这一行。它只是第一次在那里工作。我不知道为什么会这样。

有什么建议吗?

3 个答案:

答案 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)

将“动画”更改为“动画”,然后重试