Я применяю эффект размытия к UIImageView
, используя UIVisualEffectView
.
Когда я пытаюсь получить доступ к UIVisualEffectView
из блока завершения, я получаю cra sh EXC_BAD_ACCESS
.
Я также пытался поместить код в основной поток, но ничего не получается с этим
Вот мой код
func addBlurEffectView(frame: CGRect, value: CGFloat) {
if value != 0 {
if let sub = self.subviews.compactMap({ $0 as? UIVisualEffectView }).first {
print("Blur effect view exists")
sub.frame = self.bounds
self.blurEffect.setValue(value/10, forKeyPath: "blurRadius")
sub.effect = self.blurEffect
} else {
print("Blur effect view doesn't exist")
self.blurEffect = (NSClassFromString("_UICustomBlurEffect") as! UIBlurEffect.Type).init()
let blurView = UIVisualEffectView(frame: /*UIScreen.main.bounds*/frame)
self.blurEffect.setValue(value/10, forKeyPath: "blurRadius")
blurView.effect = self.blurEffect
blurView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
self.addSubview(blurView)
}
} else {
if let sub = self.subviews.compactMap({ $0 as? UIVisualEffectView }).first {
sub.removeFromSuperview()
}
}
}
Здесь, в приведенном выше коде, blurEffect - глобальная переменная, т. Е.
var blurEffect = (NSClassFromString("_UICustomBlurEffect") as! UIBlurEffect.Type).init()
Примечание: Я использую этот код также с событием valueChanged ползунка, с этим все отлично работает, но проблема возникает только когда я получаю доступ к функции из блока завершения
Я получаю cra sh в строке ниже
sub.frame = self.bounds
Понятия не имею, как решить эту проблему
Спасибо !!