我能够捕获整个网页的截图(包括屏幕外的内容)。这在模拟器上运行良好,但在设备上会崩溃。请帮我解决这个问题,检查下面的代码(browserView
是UIWebview)。
UIImage *screenImage=[[UIImage alloc] init];
UIScrollView *browserScrollableView=[[UIScrollView alloc] init];
browserScrollableView=browserView.scrollView;
UIGraphicsBeginImageContext(browserScrollableView.contentSize);
CGPoint savedContentOffset = browserScrollableView.contentOffset;
CGRect savedFrame = browserScrollableView.frame;
browserScrollableView.contentOffset = CGPointZero;
browserScrollableView.frame = CGRectMake(0, 0, browserScrollableView.contentSize.width, browserScrollableView.contentSize.height);
[browserScrollableView.layer renderInContext: UIGraphicsGetCurrentContext()];
screenImage = UIGraphicsGetImageFromCurrentImageContext();
browserScrollableView.contentOffset = savedContentOffset;
browserScrollableView.frame = savedFrame;
UIGraphicsEndImageContext();
NSLog(@"Captured image size is %f X %f",screenImage.size.width,screenImage.size.height);
UIImageWriteToSavedPhotosAlbum(screenImage, nil, nil, nil);
UIGraphicsBeginImageContext(browserScrollableView.contentSize);
替换为UIGraphicsBeginImageContextWithOptions(browserScrollableView.contentSize, NO, 0.0);
参考:UIKit函数参考。此外:如果您在后台线程调用此方法可能是崩溃的原因。 - Rok Jarc