[英]Programmatically rotating a MKMapView in iOS7
我有一个应用程序,当前使用CGAffineTransformMakeRotation来操作MKMapView,以显示具有正确方向和大小的地图。 随着iOS7的发布,这种方法变得不可靠(地图中心不断变换)。 我希望通过更可靠的解决方案来解决这个问题。
有没有办法在不使用CGAffineTransformMakeRotation的情况下在代码中旋转地图?
我看了MKMapCamera,希望我可以操纵它来传递staic值来操纵地图但是没有办法手动设置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];
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.