в методах applicationWillResignActive и applicationWillEnterForeground вызываю метод
func setBlur() {
if !self.visualEffectView.isDescendant(of: self.window!) {
self.window?.addSubview(self.visualEffectView)
}
self.visualEffectView.frame = (self.window?.bounds)!
UIView.animate(withDuration: 0.5) {
self.visualEffectView.effect = UIBlurEffect(style: .extraLight)
}
}
В методах applicationDidBecomeActive и didFinishLaunchingWithOptions вызываю метод
func disableBlur() {
UIView.animate(withDuration: 0.5) {
self.visualEffectView.effect = nil
}
}
При первом запуске приложения я его начинаю сворачивать и оно блюрится, как и должно, на экране запущенных приложений оно тоже заблюренное.
ПРОБЛЕМА в следующем: когда закрываю экран запущенных приложений и опять вызываю его, блюр пропадает. Открываю приложение и сворачиваю, блюра опять нет
не понятно в какой момент система делает снапшот приложения и я не уверен, не прячешь ли ты его сам как-нибудь. можно начать с этого. ну или попробовать решение в лоб - вместо effect view использовать рисунок(снапшот) поверх всего экрана с добавлением на него фильтра с блюром
^ @brand_nsk
Обсуждают сегодня