3

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

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

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

有什么建议么?

4

3 回答 3

4

您需要等待“MapView”完成加载...

跟随:

- (void)mapViewDidFinishLoadingMap:(MKMapView *)mapView {
    mapView.userTrackingMode = MKUserTrackingModeFollow;
}

跟随和标题:

- (void)mapViewDidFinishLoadingMap:(MKMapView *)mapView {
    mapView.userTrackingMode = MKUserTrackingModeFollowWithHeading;
}
于 2017-01-04T14:50:41.917 回答
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]];
于 2012-08-15T11:41:25.813 回答
-1

将“动画”更改为“动画”并重试

于 2012-08-14T01:10:59.857 回答