整个代码块由以下部分组成:最大大小的屏幕截图(存储器缓冲器)
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