全屏截图iOS

时间:2016-11-01 15:01:17

标签: ios swift screenshot

我想截取从第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!
}

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:0)

尝试更改UIGraphicsBeginImageContextWithOptions(layer.frame.size, false, scale);

使用tableview的长度

这样的事情:

UIGraphicsBeginImageContextWithOptions(self.tableView.contentSize.height, false, scale);

我还没有对上述内容进行测试,但你得到了一般的想法。

编辑:需要稍微修改以包含导航栏,您必须将tableview和导航栏的高度添加到一起。