Думаю, проблема в том, что ваш CIImage
на самом деле не "произведен". Видите ли, CIImage
- это просто рецепт для изображения, которое должно быть CIContext
преобразовано в фактическое растровое изображение.
(плохо документированный) удобный инициализатор UIImage(ciImage:)
работает только в том случае, если пункт назначения, которому вы назначаете изображение, понимает, что пиксели UIImage
еще не там и должны быть отрисованы первыми. UIImageView
может справиться с этим, но, похоже, SwiftUI Image
этого не делает.
Что вам нужно сделать, это создать CIContext
(один раз, возможно, как свойство вашего представления) и использовать егочтобы отобразить изображение штрих-кода в растровое изображение следующим образом:
let cgImage = self.ciContext.createCGImage(scaledQrImage, from: scaledQrImage.extent)
self.image = Image(uiImage: UIImage(cgImage: cgImage))