viewController の viewDidLoad で以下の関数を使用してぼかし効果を作成しています
func applyBlurEffect(image: UIImage){
let imageToBlur = CIImage(image: image)!
let blurfilter = CIFilter(name: "CIGaussianBlur")!
blurfilter.setValue(10, forKey: kCIInputRadiusKey)
blurfilter.setValue(imageToBlur, forKey: "inputImage")
let resultImage = blurfilter.value(forKey: "outputImage") as! CIImage
let croppedImage: CIImage = resultImage.cropping(to: CGRect(x:0,y: 0,width: imageToBlur.extent.size.width,height: imageToBlur.extent.size.height))
let context = CIContext(options: nil)
let blurredImage = UIImage (cgImage: context.createCGImage(croppedImage, from: croppedImage.extent)!)
self.backImage.image = blurredImage
}
しかし、このコードは UI をブロックし、viewController は 3 ~ 4 秒の遅れで開きます。私は、blurEffect なしで UI を表示したくありません。また、viewController を開くときにユーザーが 3 ~ 4 秒待たされることも望ましくありません。この問題の最適解を教えてください。