TableView、ScrollView 截屏

当需要截取 TableView 或 ScrollView 中的全部内容时,可以采用以下方法:

/// 长截屏
func fullScreenShot(_ scrollView: UIScrollView) -> UIImage {
        // 记录当前 scrollView 的"偏移量"和"坐标"
        let savedContentOffset = scrollView.contentOffset
        let savedScrollViewFrame = scrollView.frame
        
        scrollView.contentOffset = .zero
        scrollView.frame = CGRect(origin: .zero, size: scrollView.contentSize)
        
        UIGraphicsBeginImageContextWithOptions(scrollView.contentSize, true, UIScreen.main.scale)
        scrollView.layer.render(in: UIGraphicsGetCurrentContext()!)
        let image = UIGraphicsGetImageFromCurrentImageContext()!
        
        // 重置
        scrollView.contentOffset = savedContentOffset
        scrollView.frame = savedScrollViewFrame
        
        UIGraphicsEndImageContext()
        
        return image
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容