我能夠捕捉整個網頁的屏幕截圖(包括屏幕外的內容)。這在模擬器上工作正常,但在設備上它崩潰了。請幫我看看下面的代碼(browserView
是UIWebview)。如何捕獲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);
http://stackoverflow.com/questions/469764/rendering-a-uiwebview-into-an-imagecontext – 2012-04-19 09:58:55
@AnkitGupta謝謝。這種解決方案不會在所有情況下工作,因爲所有網站的設計都不一樣。如果網頁沒有body標籤,並且正在根據某些js加載,那麼這將不起作用(如果我沒有錯) – 2012-04-19 10:07:21
是的Anil,你可以對,我沒有使用它,但我試圖解決你的問題,它在你的情況下工作? – 2012-04-19 10:09:54