UIWebView - 向下拉网页视图然后将其转换为图像会在顶部显示空白区域,在底部显示缺少的信息?

时间:2014-10-21 12:55:50

标签: ios uiwebview uigraphicscontext

UIWebView - 向下拉网页视图然后将其转换为图像会在顶部显示空白区域并在底部显示缺少的信息?

使用此代码拍摄长而纤细的Web视图的图像屏幕截图。它运行正常,但是如果我强行拉下然后截取屏幕截图,取决于我设置的背景颜色,我在顶部得到一个空白的条带,并且在底部。

我不明白吗?这应该如何运作?

- (UIImage *)convertToImage
{

    // tempframe to reset view size after image was created
    CGRect originalFrame         = self.frame;

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

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

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

    UIGraphicsEndImageContext();

    // reset Frame of view to origin
    self.frame = originalFrame;

    return image;

}

1 个答案:

答案 0 :(得分:0)

显然Apple决定UIWebView应该将它包含的滚动视图调整为插图,这是因为iOS 7问世以来。

要禁用此功能以及由此产生的头痛我必须使用:

[self setAutomaticallyAdjustsScrollViewInsets = NO];

或者您可以在Web View所在的故事板中选择View Controller并取消选中:

Adjust Scroll View Insets