整個代碼塊由以下部分組成:最大大小的屏幕截圖(存儲器緩衝器)
CGSize layerSize = [webview sizeThatFits:CGSizeZero];
if ([UIScreen instancesRespondToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2.0f) {
UIGraphicsBeginImageContextWithOptions(layerSize, NO, 2.0f);
}
else {
UIGraphicsBeginImageContext(layerSize);
}
[webview.layer renderInContext:UIGraphicsGetCurrentContext()];
screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
但經過測試,這條線是一個引起問題: [webview.layer renderInContext:UIGraphicsGetCurrentContext ()];
看起來像是一個內存崩潰,是否有基於設備(ipod,iphone,ipad)的最大尺寸(寬x高),此功能崩潰 - 似乎在視網膜顯示器上非常長的頁面會崩潰?
我試過你的建議UIGraphicsBeginImageContextWithOptions(webview.bounds.size,YES,0.0);但仍然崩潰。儀器中的內存監視器將其標記爲內存錯誤並關閉應用程序 - 所以這絕對是內存問題。 – akishnani 2012-03-14 23:06:11
@akishnani:看到我編輯的答案:這可能是一個原因嗎?也看看鏈接的問答 – 2012-03-15 09:59:07
沒有骰子 - 仍然崩潰,我已經包含了頭文件和框架。 –
akishnani
2012-03-15 21:22:33