我想實現與Facebook分享應用程序。 我用這個代碼採取截圖:爲什麼我在iOS 7上以編程方式創建屏幕截圖看起來很糟糕?
CGSize imageSize = CGSizeMake(self.view.bounds.size.width, self.view.bounds.size.height);
UIGraphicsBeginImageContext(imageSize);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
它適用於iOS 6很棒,但在搭載iOS 7的圖像看起來很糟糕。 我用這樣的回答:iOS: what's the fastest, most performant way to make a screenshot programmatically? 對試圖修復它,而且它的幫助下,仍然截圖很糟糕。 屏幕獲得另一種顏色,並且某些對象(如標籤)未在拍攝的圖像上顯示。 有什麼幫助嗎?
---- ----更新
我設法解決大多數對象,通過改變他們保留的,而不是軟弱。我的主要問題仍然是我的桌面視圖,它顯示爲一個大的白色塊(它應該是透明的,帶有白色文本的標籤,所以我們看到的只是白色的單元格)。我曾嘗試定義表格背景clearcolor,不利於..
----最後更新---
這裏有一些不是真正關於我的問題。我想做出精彩解答它可以在使用iOS7運行但不使用iOS7 SDK的設備上工作,因爲在項目即將完成時,需要付出很大的努力來切換項目SDK。
不管怎麼說,我添加的代碼,終於解決了我的問題和平:
這種變化根本解決問題:
UIGraphicsBeginImageContextWithOptions(imageSize, NO , 0.0f);
代替:
UIGraphicsBeginImageContext(imageSize);
感謝這個漂亮的答案。我的應用程序現在與iOS 7 SDK不兼容。我沒有時間進行所有必要的更改並替換所有已棄用的類。我使用iOS 6 SDK在iOS7上運行我的應用程序。我在所有應用中遇到的唯一問題就是這個截圖。你有一個想法,我該怎麼辦? – Yossi
我認爲,您當前的代碼有1個問題可能是不考慮尺度(是視網膜設備?)。你可以使用'UIGraphicsBeginImageContextWithOptions(imageSize,NO,0.0)'(最後一個參數是圖像的比例,設置爲0.0可以確保函數選擇設備主屏幕的比例) – Vinzzz
您的評論最接近我使用的解決方案:) – Yossi