ios - 如何在ios9中捕获 View 的完整屏幕截图
<p><p>截屏使用下面的代码</p>
<pre><code>CGSize screenSize = [ bounds].size;
UIGraphicsBeginImageContextWithOptions(screenSize, view.opaque, 0.0);
;
UIImage * img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
</code></pre>
<p>但它给出了错误>>:CGImageCreateWithImageProvider: invalid image provider: NULL.</p>
<p>我不明白它是什么。</p>
<p>请帮忙!!
如何在ios9中截屏</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p><strong>解决方案 1:</strong></p>
<p>新 <a href="https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/index.html#//apple_ref/occ/instm/UIView/snapshotViewAfterScreenUpdates%3A" rel="noreferrer noopener nofollow">API</a>自 iOS 7 以来已添加,应该提供获取快照的有效方式</p>
<p><code>snapshotViewAfterScreenUpdates</code>:将 View 渲染为内容不可修改的 UIView</p>
<p><code>resizableSnapshotViewFromRect:afterScreenUpdates:withCapInsets :</code> 相同的东西,但带有可调整大小的插图</p>
<pre><code>drawViewHierarchyInRect:afterScreenUpdates:
</code></pre>
<p>:如果您还需要绘制所有 subview (如标签、按钮...),也一样</p>
<p>您可以将返回的 UIView 用于任何 UI 效果,或者在需要导出时像您所做的那样渲染成图像。</p>
<p><strong>解决方案 2:</strong></p>
<pre><code>- (UIImage *) screenshot {
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, .scale);
;
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
</code></pre></p>
<p style="font-size: 20px;">关于ios - 如何在ios9中捕获 View 的完整屏幕截图,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/34715561/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/34715561/
</a>
</p>
页:
[1]