ios 学习

[Swift] UIScrollView 长截图

2023-03-25  本文已影响0人  巨馍蘸酱
        // 记录当前的scrollView的偏移量和坐标
        let currentContentOffSet:CGPoint = scrollView.contentOffset
        
        UIGraphicsBeginImageContextWithOptions(scrollView.contentSize, false, UIScreen.main.scale)
        let pageCount: Int = Int(ceil(scrollView.contentSize.height/scrollView.frame.height))
        for i in 0..<pageCount {
            scrollView.contentOffset = CGPoint(x: 0, y: CGFloat(i) * scrollView.frame.height)
            scrollView.layer.render(in: UIGraphicsGetCurrentContext()!)
        }
        let image: UIImage? = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        
        // 重新设置原来的参数
        scrollView.contentOffset = currentContentOffSet
        
        // 保存图片
        guard let image = image else {
            return
        }
        PHPhotoLibrary.shared().performChanges {
            PHAssetChangeRequest.creationRequestForAsset(from: image)
        } completionHandler: { (suc: Bool, err: Error?) in
            if let error = err, suc == false {
                // 失败
            } else {
                // 成功
            }
        }
上一篇 下一篇

猜你喜欢

热点阅读