在尝试捕获屏幕截图时,除UILabels之外的所有内容均被捕获。我检查了视图层次结构,以查看标签是否被某种程度上隐藏了,但一切看起来都很好。
顺便说一句,我很高兴在屏幕截图中隐藏了导航控制器,我只需要弄清楚标签为什么被隐藏。
我不确定我要去哪里哪里
@IBAction func cameraBarButtonItem(_ sender: UIBarButtonItem) {
UIGraphicsBeginImageContextWithOptions(view.bounds.size, false, UIScreen.main.scale)
guard let context = UIGraphicsGetCurrentContext() else {
print("No Graphics Context")
return
}
view.layer.render(in: context)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
print("Photo Screen Captured")
guard let photoImage = image else {
return
}
guard let imageData = UIImageJPEGRepresentation(photoImage, 1.0) else {
return
}
userQueue.async {
savePhotoToPhotoLibrary(data: imageData) {
}
}
}
答案 0 :(得分:0)
UIGraphicsBeginImageContextWithOptions(view.bounds.size, false, UIScreen.main.scale)
guard let context = UIGraphicsGetCurrentContext() else {
print("No Graphics Context")
return
}
view.layer.render(in: context)
确保UILabel是用于屏幕截图的视图的子视图。
否则,请使用this code from another SO post截取整个屏幕的屏幕截图。
答案 1 :(得分:0)
似乎可以解决问题的方法是:
self.view.drawViewHierarchyInRect(view.bounds, afterScreenUpdates: true)