Я представляю View Controller модально с эффектом размытия фона. В iOS 10/XCode 8 появилась проблема с моей анимацией. Это код презентации:
let modalVC = ModalViewController(nibName: "ModalViewController", bundle: nil)
modalVC.modalTransitionStyle = .CrossDissolve
modalVC.modalPresentationStyle = .OverFullScreen
presentViewController(modalVC, animated: true, completion: nil)
Добавление размытия на функцию viewDidLoad()
в ModalViewController:
let blurEffect = UIBlurEffect(style: .Light)
let blurEffectView = UIVisualEffectView(effect: blurEffect)
blurEffectView.frame = view.bounds
blurEffectView.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
view.addSubview(blurEffectView)
view.sendSubviewToBack(blurEffectView)
ModalViewController
имеет чистый фон, и я добавил BlurEffectView
с эффектом темного размытия. Пробовал как программно с предыдущим фрагментом, так и в Interface Builder.
В iOS 8 и 9 переход .CrossDissolve
позаботился о «затухании», но после тестирования на iOS 10 (как на устройстве, так и на симуляторе) изображение появляется с темным полупрозрачным цветом фона вместо размытия.
После завершения анимации .CrossDissolve
цвет фона меняется на фактический фон с эффектом размытия. Есть идеи, почему это происходит?
Также безуспешно пытался добавить layoutIfNeeded()
в начале и конце viewDidLoad()
для контроллера модального представления. Я использую свифт 2.3