繁体   English   中英

全屏截屏iOS

[英]Take full screen's screenshot iOS

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

任何帮助表示赞赏。

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

使用tableview的长度

像这样:

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

我没有测试以上内容,但您了解了一般想法。

编辑: 这将需要稍作修改以包括导航栏,您必须将tableview和navbar的高度加在一起。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM