我想截取从第0行到第30行的全长tableview截图。 (包括导航栏)
以下是我实施的代码,它只截取了可见屏幕的截图:
func takeScreenShot() -> UIImage {
let layer = UIApplication.shared.keyWindow!.layer
let scale = UIScreen.main.scale
UIGraphicsBeginImageContextWithOptions(layer.frame.size, false, scale);
layer.render(in: UIGraphicsGetCurrentContext()!)
let screenshot = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
UIImageWriteToSavedPhotosAlbum(screenshot!, nil, nil, nil)
return screenshot!
}
任何帮助表示感谢。
答案 0 :(得分:0)
尝试更改UIGraphicsBeginImageContextWithOptions(layer.frame.size, false, scale);
使用tableview的长度
这样的事情:
UIGraphicsBeginImageContextWithOptions(self.tableView.contentSize.height, false, scale);
我还没有对上述内容进行测试,但你得到了一般的想法。
编辑:需要稍微修改以包含导航栏,您必须将tableview和导航栏的高度添加到一起。