Swift:在另一个视图上添加时,无法使PhotoEditPreviewController的背景透明

时间:2018-03-29 07:39:00

标签: ios photoeditorsdk

我将PhotoEditPreviewController置于自定义视图的顶部,该视图通过设置透明图像进行初始化。用于文本编辑的SpriteEditController中有PhotoEditPreviewController。在视图的Hierarchy结构中,我可以看到有一个GLKView在iPhone 6和6s中显示透明,但在iPhone 7,8和10(X)上采用黑色背景颜色。我需要GLKView透明我尝试从视图中获取此GLView并设置其图层和背景颜色。但似乎没有什么能在这些设备上运行。

View Hierarchy

1 个答案:

答案 0 :(得分:0)

您必须使用PhotoEditPreviewController' s delegate来设置背景颜色。这样的事情应该这样做:

photoEditPreviewController.delegate = self

然后

extension ViewController: PhotoEditPreviewControllerDelegate {
  func photoEditPreviewControllerResetProxyZooming(_ photoEditPreviewController: PhotoEditPreviewController) {
  }

  func photoEditPreviewControllerPreviewEnabled(_ photoEditPreviewController: PhotoEditPreviewController) -> Bool {
    return true
  }

  func photoEditPreviewControllerDidChangePhotoEditModel(_ photoEditPreviewController: PhotoEditPreviewController) {
  }

  func photoEditPreviewControllerPreviewScale(_ photoEditPreviewController: PhotoEditPreviewController) -> CGFloat {
    return 1
  }

  func photoEditPreviewControllerBackgroundColor(_ photoEditPreviewController: PhotoEditPreviewController) -> UIColor {
    // Return the desired background color here.
    return .clear
  }

  func photoEditPreviewControllerProxyZoomingActive(_ photoEditPreviewController: PhotoEditPreviewController) -> Bool {
    return false
  }

  func photoEditPreviewControllerPreviewInsets(_ photoEditPreviewController: PhotoEditPreviewController) -> UIEdgeInsets {
    return .zero
  }

  func photoEditPreviewControllerRenderMode(_ photoEditPreviewController: PhotoEditPreviewController) -> PESDKRenderMode {
    return .all
  }
}