[英]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.