我正在使用 UITableView 屏幕截图功能。在这里,我可以截取完整的 UITableView 行的屏幕快照,但是最后一行丢失了。基本上,我使用的是 UIScrollView 的内容大小。但是,此内容大小不会返回 UITableView 的完整高度。但是,如果我将 UITableView 滚动到底部并进行截图,则工作正常。因此,我需要一种解决方案来拍摄完整的屏幕截图。
func screenShot(_ scrollView:UIScrollView) -> UIImage? {
UIGraphicsBeginImageContextWithOptions(scrollView.contentSize, false, UIScreen.main.scale)
let savedContentOffset = scrollView.contentOffset
let savedFrame = scrollView.frame
scrollView.contentOffset = CGPoint.zero
scrollView.frame = CGRect(x: 0, y: 0, width: scrollView.contentSize.width, height: scrollView.contentSize.height)
scrollView.layer.render(in: UIGraphicsGetCurrentContext()!)
let image = UIGraphicsGetImageFromCurrentImageContext()
scrollView.contentOffset = savedContentOffset
scrollView.frame = savedFrame
UIGraphicsEndImageContext()
return image
}