Исчезновение объекта на странице превращения в контроллере просмотра страницы

Я пытаюсь закрасить фон UIBlur, когда страница входит в PageViewController.

Например, на странице 1 нет размытия пользовательского интерфейса на фоне, но я хочу, чтобы на странице 2 на фоне контроллера появлялось темное пятно, когда страница появляется.

Что происходит в данный момент, так это то, что страница появляется, через полсекунды размытие применяется.

Вот что у меня есть для страницы 2:

    @IBOutlet weak var blurEffect: UIVisualEffectView!


        override func viewDidLoad() {
            super.viewDidLoad()
            let overlay = blurEffect
            overlay.effect = nil
        }

        override func viewDidAppear(animated: Bool) {
            let overlay = blurEffect
            overlay.effect = nil
            UIView.animateWithDuration(0.5) {
                overlay.effect = UIBlurEffect(style: .Dark)
            }
        }

2 ответа

Решение

Непонятно, чего вы на самом деле хотите, но если вы хотите представить контроллер представления поверх другого, где вы размываете представление контроллера представления в качестве фона для представленного контроллера представления. Вам следует:

  1. Изменение цвета фона представления представленного контроллера представления, чтобы очистить цвет.
  2. Добавление UIVisualEffectView внизу представленной иерархии представления контроллера представления.
  3. Изменение перехода к модальному переходу или представление контроллера вида модально.
  4. Измените стиль представления перехода на текущий контекст или настройте представление представленного контроллера представления viewController.modalPresentationStyle = .OverCurrentContext
  5. Измените переход на "Перекрестное растворение" или "Вертикальное покрытие" viewController.modalTransitionStyle = .CoverVertical

Я уверен, что вы можете применить эту технику и другими способами, хотя это дорого.

Следующие свойства класса UIView являются анимируемыми:

@property Frame

@ свойства собственности

@property центр

@property transform

@property alpha

@property backgroundColor

@property contentStretch

Документация Apple

Другие вопросы по тегам