2014-02-10 55 views
0

我正在iOS应用程序中,我需要捕捉视图并将MMS发送给特定的人。它所有的工作都很好。但是我面临的问题是捕获哪些不可见(更多解释我附加图像)。如何获取ios中隐形部分的屏幕截图?

enter image description here

我收到这是visible.How解决问题的视图的屏幕截图?有没有办法达到我的要求?我所得到的图像是

enter image description here

我使用的代码采取截图

UIGraphicsBeginImageContext(webview_pdf.bounds.size); 
[webview_pdf.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *pdfImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

良好的建议是appreciable.Thanks提前!

回答

0

您需要创建另一个视图,它是内容的完整大小。您可以将此视图添加到屏幕外,然后按照您在此处所做的相同方式进行捕获。它被切断的原因是因为该视图仅显示了该部分内容。

+0

以及好的建议兄弟 – iSwaroop

+0

但我有一个doubt..Does如果有无限的记录,它的工作原理? @ CW0007007 – iSwaroop

+0

创建视图可能需要很长时间。它会适用于任何大小的内容。只需在屏幕外创建另一个视图容器。将高度设置为您的内容的高度。然后将该视图保存为n图像。 – CW0007007

1

终于找到了解决这个

+ (UIImage *) imageFromWebView:(UIWebView *)view 
{ 
    // tempframe to reset view size after image was created 
    CGRect tmpFrame = view.frame; 

    // set new Frame 
    CGRect aFrame = view.frame; 
    aFrame.size.height = [view sizeThatFits:[[UIScreen mainScreen] bounds].size].height; 
    view.frame = aFrame; 

    // do image magic 
    UIGraphicsBeginImageContext([view sizeThatFits:[[UIScreen mainScreen] bounds].size]); 

    CGContextRef resizedContext = UIGraphicsGetCurrentContext(); 
    [view.layer renderInContext:resizedContext]; 
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 

    UIGraphicsEndImageContext(); 

    // reset Frame of view to origin 
    view.frame = tmpFrame; 
    return image; 
} 
+0

好的解决方案:) – Vidhyanand

+0

当用代码回答问题时,请确保代码格式正确,因为它使得阅读很难如果不是。 – Popeye