0

我有一个问题,我得到了一个带有这段代码的 uiwebview 的截图:

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

一切正常,现在我需要截取特定 div 的屏幕截图,用户在 uiwebview 内长按,然后我检测到触摸的 div 并为这个特定 div 拍照。这样做的最佳方法是什么?

4

1 回答 1

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有一个私有方法,它允许您使用实现此功能。但是,由于这是一种私有方法,如果您将其提交到 App Store,您的应用程序将被拒绝。

于 2012-11-02T11:43:01.583 回答