截屏

作者: foolish_hungry | 来源:发表于2018-08-02 18:04 被阅读0次
// MARK: - 截屏
extension UIImage {
    
    public static func snapshot(for scrollView: UIScrollView) -> UIImage {
        // 1. 记录当前 scrollView 的偏移和位置
        let currentOffset: CGPoint = scrollView.contentOffset;
        let currentFrame: CGRect = scrollView.frame;
        
        scrollView.contentOffset = CGPoint.zero;
        // 2. 将 scrollView 展开为其实际内容的大小
        scrollView.frame = CGRect(x:0, y:0, width: scrollView.contentSize.width, height: scrollView.contentSize.height);
        
        // 3. 第三个参数设置为 0 表示设置为屏幕的默认缩放因子
        UIGraphicsBeginImageContextWithOptions(scrollView.contentSize, true, 0)
        scrollView.layer.render(in: UIGraphicsGetCurrentContext()!)
        let snapshotImage: UIImage = UIGraphicsGetImageFromCurrentImageContext()!
        UIGraphicsEndImageContext()
        
        // 4. 重新设置 scrollView 的偏移和位置,还原现场
        scrollView.contentOffset = currentOffset
        scrollView.frame = currentFrame
        
        return snapshotImage
    }
}

相关文章

网友评论

      本文标题:截屏

      本文链接:https://www.haomeiwen.com/subject/scmsvftx.html