que framework examples apple ios swift xcode uikit swift3

ios - framework - Retraso UIVisualEffectView con UIModalTransitionStyle CrossDissolve



uikit ios (2)

UIVisualEffectView un controlador de vista modal que tiene un fondo con un UIVisualEffectView con un UIBlurEffect de tipo .light

Estoy presentando el controlador de vista modal de la siguiente manera:

infoViewController.modalPresentationStyle = .overFullScreen infoViewController.modalTransitionStyle = .crossDissolve self.present(infoViewController, animated: true, completion: nil)

Me doy cuenta de que la vista del efecto de desenfoque no aparece hasta que la animación crossDissolve haya completado. Este no es el caso para otros estilos de transición como coverVertical .

Esto está sucediendo solo en iOS 10 con Swift 3.

¿Cómo puedo hacer que la animación crossDissolve funcione junto con la vista de efectos visuales en mi infoViewController ? ¿Alguna sugerencia / solución alternativa?


Lo que hago es reemplazar el crossDisolve con una CATransition , así:

self.present(controller, animated: false, completion: nil) let transition = CATransition() transition.duration = 0.3 transition.type = kCATransitionFade view.window?.layer.add(transition, forKey: nil)

Espero eso ayude.


Controle su consumo, debería ver allí el motivo:

<_UIPopoverBackgroundVisualEffectView 0x7fe053562840> se le pide que anime su opacidad. Esto causará que el efecto aparezca roto hasta que la opacidad vuelva a 1.

No puede usar UIVisualEffectView con la animación crossDissolve ...