iOS开发 截屏webview/截屏视频

全屏幕截屏

如果当前屏幕有webview或者视频画面,如果想把这些画面都截取,可以使用以下代码:

- (UIImage *)screenShotGetImage {
    UIView *view = [UIApplication sharedApplication].keyWindow;
    if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]){
        UIGraphicsBeginImageContextWithOptions(view.bounds.size, NO, [UIScreen mainScreen].scale);
    } else {
        UIGraphicsBeginImageContext(view.bounds.size);
    }
    [view drawViewHierarchyInRect:self.bounds afterScreenUpdates:NO];
    [view.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
//    UIImageWriteToSavedPhotosAlbum(image, self, nil, nil);
    return image;
}

注意

[view drawViewHierarchyInRect:self.bounds afterScreenUpdates:NO];很关键。
afterUpdates参数表示是否在所有效果应用在视图上了以后再获取快照。例如,如果该参数为NO,则立马获取该视图现在状态的快照,反之,以下代码只能得到一个空白快照:

[view snapshotViewAfterScreenUpdates:YES]; 
[view setAlpha:0.0];
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容