截图uiwebview内容

时间:2011-06-12 19:59:23

标签: iphone image uiwebview

我想做一个UIWebView的截图,我使用这个代码

代码:

UIGraphicsBeginImageContext(self.vistaWeb.bounds.size);
[vistaWeb.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(viewImage,nil,NULL,NULL);

它运作良好,我的问题是我想制作所有uiwebview的截图,而不仅仅是可见视图...例如,我有一个200x200的uiwebview,但页面是200x500,这个代码我制作200x200的截图,而我想制作200x500的截图。我必须做什么?

kikko088

1 个答案:

答案 0 :(得分:3)

问题在于:

UIGraphicsBeginImageContext(self.vistaWeb.bounds.size);

您使用的是视图的大小,而不是其内容的大小。要获取页面大小,请使用以下approach。然后只需用适当的大小替换self.vistaWeb.bounds.size

为了支持视网膜,您应该使用以下代码替换代码的第一行:

CGSize layerSize = ...
if ([UIScreen instancesRespondToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2.0f) {
    UIGraphicsBeginImageContextWithOptions(layerSize, NO, 2.0f);
} else {
    UIGraphicsBeginImageContext(layerSize);
}