uiwebview的一部分的图像

时间:2012-11-02 11:34:11

标签: javascript image uiwebview touch

我有一个问题,我使用此代码获取了uiwebview的屏幕截图:

UIGraphicsBeginImageContextWithOptions(self.myWebView.bounds.size, self.myWebView.opaque, 0.0);
[self.myWebView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage * img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

所有工作都很完美,现在我需要截取特定div的屏幕截图,用户在uiwebview内长按,然后我检测到触摸的div,我为这个特别的div制作了一张照片。这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

似乎你需要做renderInContext。

 // Size of the result rendered image
CGSize targetImageSize = CGSizeMake(100, 100);
// Check for retina image rendering option
if (NULL != UIGraphicsBeginImageContextWithOptions) UIGraphicsBeginImageContextWithOptions(targetImageSize, NO, 0);
else UIGraphicsBeginImageContext(targetImageSize);

CGContextRef context = UIGraphicsGetCurrentContext();
// The view to be rendered
[[yourImageView layer] renderInContext:context];
// Get the rendered image
UIImage *original_image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

和其他部分据我所知没有公共方法可以让你截取整个屏幕(即状态栏)。虽然UIGetScreenImage有一个private method,它允许您使用实现此功能。但是,由于它是一种私有方法,如果您将其提交到App Store,您的应用将被拒绝。