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

Dan*_*e B 1 png uitableview uiscrollview ios swift

我想将整个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)
Run Code Online (Sandbox Code Playgroud)

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

任何的想法?

Gag*_*iOS 6

以下是一些Swift扩展文件,您可以将这些文件添加到项目中以制作屏幕截图:

新代码将是:

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)
Run Code Online (Sandbox Code Playgroud)

  • @DanieleB 您看到这些类别的 [swift 等效项] 了吗?(https://github.com/davidman/DHSmartScreenshot/tree/master/Classes/Swift)为此? (2认同)