CGImageCreate: недопустимое изображение alphaInfo: kCGImageAlphaNone. Это должно быть kCGImageAlphaNoneSkipLast

Я пытаюсь захватить UIVIew как изображение, которым затем могу управлять. У меня есть код, который работает в Xcode 11.7/simulator (под управлением iOS 13.7), но выдает эту ошибку:

CGImageCreate: недопустимое изображение alphaInfo: kCGImageAlphaNone. Это должно быть kCGImageAlphaNoneSkipLast

Запуск на реальном устройстве приводит к сбою.

Есть идеи, как я могу создать это изображение без альфы или удалить его постфактум?

extension UIView  {
    // render the view within the view's bounds, then capture it as image
  func asImage() -> UIImage {
    let renderer = UIGraphicsImageRenderer(bounds: bounds)
    return renderer.image(actions: { rendererContext in
        layer.render(in: rendererContext.cgContext)
    })
  }
}

Он вызывается из этого кода:

@IBAction func reactionListButtonTapped(_ sender: UIButton) {
  guard let reactionVC = storyboard?.instantiateViewController(withIdentifier: "ReactionViewController")
    as? ReactionViewController else {
      
    assertionFailure("No view controller ID ReactionViewController in storyboard")
    return
  }

  // take a snapshot of current view and set it as backingImage
  reactionVC.backingImage = self.view.asImage()

  self.present(reactionVC, animated: false, completion: nil)
}

Спасибо за любую помощь.

0 ответов

Другие вопросы по тегам