我想做一个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
答案 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);
}