![](/img/trans.png)
[英]iOS - take screenshot of springboard(home screen) programmatically
[英]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.