我有一个应用程序,目前使用CGAffineTransformMakeRotation来操作MKMapView以显示正确方向和大小的地图。但是在iOS7发布后,该方法变得不可靠(地图中心点不断偏移)。我希望通过更可靠的解决方案来解决这个问题。
是否有一种不使用CGAffineTransformMakeRotation的方法在代码中旋转地图?
我查看了MKMapCamera,希望能够将其操作为传递静态值以操纵地图,但没有办法手动设置centerCoordinate和eyeCoordinate。
我有一个应用程序,目前使用CGAffineTransformMakeRotation来操作MKMapView以显示正确方向和大小的地图。但是在iOS7发布后,该方法变得不可靠(地图中心点不断偏移)。我希望通过更可靠的解决方案来解决这个问题。
是否有一种不使用CGAffineTransformMakeRotation的方法在代码中旋转地图?
我查看了MKMapCamera,希望能够将其操作为传递静态值以操纵地图,但没有办法手动设置centerCoordinate和eyeCoordinate。
你可以通过使用 -setCamera:animated:
方法并设置一个新的 MKMapCamera
对象来旋转和倾斜地图。
要进行旋转,请给它一个新的 heading
参数:
- (void)viewDidAppear:(BOOL)animated // or wherever works for you
{
[super viewDidAppear:animated];
if ([mapView respondsToSelector:@selector(camera)]) {
MKMapCamera *newCamera = [[mapView camera] copy];
[newCamera setHeading:90.0]; // or newCamera.heading + 90.0 % 360.0
[mapView setCamera:newCamera animated:YES];
}
}
您还可以通过改变俯仰角和高度来实现更炫酷的缩放效果,并显示建筑物:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
if ([mapView respondsToSelector:@selector(camera)]) {
[mapView setShowsBuildings:YES];
MKMapCamera *newCamera = [[mapView camera] copy];
[newCamera setPitch:45.0];
[newCamera setHeading:90.0];
[newCamera setAltitude:500.0];
[mapView setCamera:newCamera animated:YES];
}
}
setCamera:animated:
。 - nevan kingMKMapCamera
没有setHeading:animated:
方法。 - nevan king