Задержка UIVisualEffectView с UIModalTransitionStyle CrossDissolve
Я представляю modal view controller, у которого есть фон с UIVisualEffectView
с UIBlurEffect
типа .light
Я представляю контроллер модального представления, как показано ниже:
infoViewController.modalPresentationStyle = .overFullScreen
infoViewController.modalTransitionStyle = .crossDissolve
self.present(infoViewController, animated: true, completion: nil)
Я замечаю, что представление эффекта размытия не появляется, пока анимация crossDissolve
не завершится.
Это не относится к другим стилям перехода, таким как coverVertical
.
Это происходит только на iOS 10 с Swift 3.
Как я могу заставить анимацию crossDissolve
работать вместе с визуальным эффектом на моем infoViewController
. Любые предложения/обходные пути?
Ответы
Ответ 1
Что я делаю, заменяя crossDisolve
на CATransition
, например:
self.present(controller,
animated: false,
completion: nil)
let transition = CATransition()
transition.duration = 0.3
transition.type = kCATransitionFade
view.window?.layer.add(transition, forKey: nil)
Надеюсь, это поможет.
Ответ 2
Проверьте свою консулу, вы должны увидеть там причину -
< _UIPopoverBackgroundVisualEffectView 0x7fe053562840 > запрашивается анимировать его непрозрачность. Это приведет к появлению эффекта, пока непрозрачность не вернется к 1.
Вы не можете использовать анимацию UIVisualEffectView
с crossDissolve
...