Swift:如何将整个可滚动的UITableVIew保存到PNG

时间:2015-11-16 11:52:43

标签: ios swift uitableview uiscrollview png

我想将整个UITableView保存为PNG文件。

使用此代码,我设法保存可见部分:

UIGraphicsBeginImageContextWithOptions(tableView.layer.frame.size, false, 0.0);
tableView.layer.renderInContext(UIGraphicsGetCurrentContext()!)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
let data = UIImagePNGRepresentation(image)
let documentsURL = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0]
let imageURL = documentsURL.URLByAppendingPathComponent("cached.png")
data!.writeToURL(imageURL, atomically: false)

但我还想要当前没有显示的可滚动部分。

有什么想法吗?

1 个答案:

答案 0 :(得分:6)

以下是一些Swift extensions files您可以添加到项目中以制作屏幕截图:

新代码将是:

let image = tableView.screenshot
let data = UIImagePNGRepresentation(image)
let documentsURL = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0]
let imageURL = documentsURL.URLByAppendingPathComponent("cached.png")
data!.writeToURL(imageURL, atomically: false)