簡體   English   中英

以編程方式在iOS7中旋轉MKMapView

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM