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)
}
Спасибо за любую помощь.