Задержка 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...