使用以下代码
CGSize screenSize = [[UIScreen mainScreen] bounds].size;
UIGraphicsBeginImageContextWithOptions(screenSize, view.opaque, 0.0);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage * img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
但是它给出了错误>> :CGImageCreateWithImageProvider:无效的图像提供程序:NULL。
我不明白它是什么。
请帮忙!! 如何在ios9中捕获屏幕截图
答案 0 :(得分:4)
解决方案1:
自iOS 7以来添加了新的API,它应该提供有效的快照获取方式
resizableSnapshotViewFromRect:afterScreenUpdates:withCapInsets :
:将视图呈现为具有不可修改内容的UIView
drawViewHierarchyInRect:afterScreenUpdates:
同样的事情,但有可调整大小的插图
- (UIImage *) screenshot {
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, [UIScreen mainScreen].scale);
[self.view drawViewHierarchyInRect:self.view.bounds afterScreenUpdates:YES];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
:同样的事情,如果你也需要绘制所有子视图(如标签,按钮......)
您可以使用为任何UI效果返回的UIView,或者渲染到您需要导出时的图像。
解决方案2:
L.DomEvent.addListener(listing[0], 'mouseover', function(e) {
// Do stuff to listing div
}
答案 1 :(得分:0)
UIGraphicsBeginImageContext(CGSizeMake(self.view.frame.size.width,self.view.frame.size.height));
CGContextRef context = UIGraphicsGetCurrentContext();
[myUIView.layer renderInContext:context];
UIImage *screenShot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
答案 2 :(得分:0)
请尝试以下功能,它完美地为我工作:
snapshotViewAfterScreenUpdates
此外,如果您想模仿截图动画,请参阅此链接,我已为其提供了代码 Imitating screenshot flash animation on iOS