UILabel没有显示在屏幕截图中

时间:2018-07-09 13:54:08

标签: ios swift screenshot

在尝试捕获屏幕截图时,除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) {

    }
  }
}

enter image description here enter image description here

enter image description here

2 个答案:

答案 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)