Я создаю эффект размытия, используя эту функцию ниже в viewDidLoad из ViewControllerИспользование GaussianBlur на изображение в viewDidLoad блоков UI
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
}
Но этот кусок кода блоков открывает интерфейс и ViewController через 3-4 секунды отставания. Я не хочу представлять пользовательский интерфейс без blurEffect, а также не хочу, чтобы пользователь ждал 3-4 секунды при открытии viewController. Просьба предоставить оптимальное решение этой проблемы.
Вы уверены, что из-за этого эффекта размытия это занимает больше времени? Вы тестировали, комментируя этот код размытия? – Lion
Да без этой функции вызов временной задержки не наступает –
Можете ли вы представить контроллер представления с исходным изображением и выполнить размытие на фоновом потоке и сделать хороший эффект, чтобы заменить изображение после размытия? – ubiAle