[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 {
// 成功
}
}