2012-10-03 143 views
1

在iOS6之前,我使用MKMapView的子視圖基於用戶的GPS方向(NOT HEADING)旋轉MKMapView。這一切都非常完美,我初始化的觀點如下:MKMapView旋轉iOS6縮放

mapView = [[MKMapView alloc] init];  
mapView.delegate = self; 
mapView.clipsToBounds = FALSE; 
mapView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;   
self.view = mapView; 

和旋轉,當我做了以下內容:

UIView *innerMap = [mapView.subviews objectAtIndex:0]; 
if([innerMap isKindOfClass:[UIView class]]) 
{ 
    innerMap.transform = CGAffineTransformMakeRotation(degreesToRadians(-lastDegrees)); 
} 

正如我所說的,所有的工作完美。那麼當地圖旋轉時,它會自動縮放到視圖的整個框架並填充旋轉創建的黑角。

但是,新的iOS6地圖不能縮放和填充角落!所以當它旋轉時,視圖的一半缺失,另一半是黑色(背景色)。 我試過了什麼?

  • 嘗試新的MKMapView的所有不同子視圖(也設置其resizingmask到相同的值的MapView)
  • 試圖將contentmode設置爲scaleToFill(也在子視圖)
  • 試圖設置的旋轉

不幸後autoresizes子視圖真正

  • 嘗試重置框架,我所有的努力沒有任何效果可言。不知怎的,GoogleMaps自動縮放並填充了黑色的角落,而iOS Maps則沒有。所以我在這裏錯過了一些東西,UIView的一些令人敬畏的屬性,我忘記了,或者這對於新的iOS6 Maps來說是不可能的?

  • 回答

    1

    如何使MapView比屏幕尺寸大得多,因此當它旋轉時你無法看到它?

    +0

    嗨,謝謝,這是一個有效的解決方案,我已經在當前版本中實現了這一點。然而,問題在於我不喜歡這種解決方案,因爲用戶需要加載超過必要的數據,並且在3G上iPhone4需要花費太多時間來加載地圖。我只是想知道我是否錯過了自動調整大小的東西。 –

    +0

    我使用Craig描述的方法。沒有人抱怨數據使用情況。數以萬計的銷售。你可以調整你的mapView的大小,使它不會太大。另外我這樣做的方式是我有一個常規視圖,我按照我希望的方式在XIB中調整大小,然後在代碼中創建一個MapView,調整它大小,然後將其作爲子視圖添加到XIB視圖中。 – Fraggle