2012-12-12 63 views
0

我想獲取mapview的截圖。所以我用下面的代碼。此代碼在ipad和模擬器中完美工作,但不在iPod上。 iPad有iOS 6.0,我的xcode是4.2.1,iPod有iOS 5.0。在iOS 5和iOS 6中捕獲MKMapView的截圖有何不同?

- (UIImage*) renderToImage 
{ 
    UIGraphicsBeginImageContext(mapView.frame.size); 
    [mapView.layer renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return viewImage; 
} 

的問題是,我已經在iPad上,iPod的ANS模擬器得到了相同的圖像,但沒有相應的手冊屏幕捕獲和程序上的屏幕capture.The名稱的名稱是非常大的的iPod,同時名稱在正常iPad和模擬器,還有一些名字在iPod中是不可見的。那是我的問題。

以下圖像:

該圖像屬於的iPod手冊屏幕捕獲。

enter image description here

此圖片屬於iPod的程序上的屏幕截圖。

enter image description here

我不知道問題出在哪裏。請幫助我的人。

+1

iOS 5將Google地圖用於其地圖服務。 iOS 6使用Apple的內部地圖服務。在這兩種情況下,你都會得到你在Maps.app中的內容以及用戶的期望。在名稱方面,Google看起來像州和城市,但蘋果只做城市? – Tommy

+0

iPod中的名字非常大,同時iPad和模擬器中的名字都是正常的,iPod中也有一些名字是不可見的。那是我的問題。 –

+0

Prasad:湯米說這是可以預料的。 Apple改變了iOS 5.0(在iPod上)和iOS 6.0(在iPad上和模擬器上)之間的映射方式。如果您想在所有設備上看到相同的圖像,請將iPod升級到iOS 6.0。 – Tim

回答

1

問題是UIGraphicsBeginImageContext(mapView.frame.size);在這裏。我剛剛將其替換爲UIGraphicsBeginImageContextWithOptions(mapView.frame.size, NO, 0.0);。然後它在iOS 5.0中工作。

0

你可以通過在每種情況下查看應用程序來告訴它,它不是你的屏幕截圖代碼,神奇地創建不同的地圖,底層的地圖是不同的

+0

感謝您的重播。拍攝前和拍攝圖像後,我的問題是不同的。我認爲問題在於加載mapview。我更新了我的問題。請告訴我我的問題的答案。 –

+0

我對你之前/之後的狀態不清楚。以上張貼的屏幕截圖是由您的應用拍攝的,還是您按下了家庭和屏幕鎖定按鈕? – Craig

+0

第一張圖像是從我派生的意思是按住home和屏幕鎖定按鈕,第二張圖像是從給定代碼派生的。兩幅圖像都不一樣。 –

相關問題