【问题标题】:WKWebView save to UIImageWKWebView 保存到 UIImage
【发布时间】:2015-09-23 13:38:01
【问题描述】:

我使用下面的代码将 WKWebView 保存到 UIImage 中。但问题是,超过 50% 的 UIImage 是空白/空白。

- (UIImage *)screenCapture {    
UIImage *image;

UIGraphicsBeginImageContextWithOptions(self.scrollView.contentSize, TRUE, 0.0f);
{
    CGPoint savedContentOffset = self.scrollView.contentOffset;
    CGRect savedFrame = self.scrollView.frame;

    self.scrollView.contentOffset = CGPointZero;
    self.scrollView.frame = CGRectMake(0, 0, self.scrollView.contentSize.width, self.scrollView.contentSize.height);

    [self.scrollView drawViewHierarchyInRect:self.scrollView.bounds afterScreenUpdates:YES];
    image = UIGraphicsGetImageFromCurrentImageContext();

    self.scrollView.contentOffset = savedContentOffset;
    self.scrollView.frame = savedFrame;
}
UIGraphicsEndImageContext(); 
return image;
}

有人遇到过同样的问题吗?这里有解决方法的任何想法吗? 我也试过这个:[self.scrollView.layer renderInContext:UIGraphicsGetCurrentContext()]; 但更糟糕的是,UIImage 只是纯白色。

更新: 这是我捕获的 UIImage 示例。 Captured UIImage

【问题讨论】:

  • 所以你基本上是从滚动视图创建屏幕截图吧?
  • 是的,wkwebview的scrollview属性

标签: ios objective-c uiimage wkwebview


【解决方案1】:

试试这个:

UIGraphicsBeginImageContext(scrollView.frame.size);
[scrollView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

现在你在 viewImage 中有了滚动视图的图像。

【讨论】:

  • 那么你可能需要截屏视图而不是滚动视图。试试 view.layer
  • view.layer 中的视图必须是滚动视图中的视图
  • 还是UIGraphicsBeginImageContext(scrollView.frame.size);?还是我应该把它改成UIGraphicsBeginImageContext(view.frame.size);
  • 如果您需要滚动视图中内容的屏幕截图,则不应更改滚动视图.frame.size
  • 另外,如果没有按您的需要来,请用屏幕截图更新您的问题!!!
猜你喜欢
  • 2012-06-13
  • 2016-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-15
相关资源
最近更新 更多