如何在ios中获取隐形部分的屏幕截图?

时间:2014-02-10 13:16:16

标签: ios iphone objective-c ipad ios6

我正在开发iOS应用程序,我需要捕获视图并将MMS发送给特定的人。它一切正常。但是我面临着捕获的问题,这是不可见的(为了更清楚我附加图像)。

enter image description here

我正在看到可见的视图的屏幕截图。如何解决问题?有没有办法达到我的要求?我得到的图像是

enter image description here

我用代码截取屏幕是

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

好的建议很明显。谢谢。!

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

您需要创建另一个视图,该视图是内容的完整大小。您可以在屏幕上添加此视图,然后以与此处相同的方式捕获它。它被切断的原因是因为视图只呈现了部分内容。