Исчезновение объекта на странице превращения в контроллере просмотра страницы
Я пытаюсь закрасить фон 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 ответа
Непонятно, чего вы на самом деле хотите, но если вы хотите представить контроллер представления поверх другого, где вы размываете представление контроллера представления в качестве фона для представленного контроллера представления. Вам следует:
- Изменение цвета фона представления представленного контроллера представления, чтобы очистить цвет.
- Добавление UIVisualEffectView внизу представленной иерархии представления контроллера представления.
- Изменение перехода к модальному переходу или представление контроллера вида модально.
- Измените стиль представления перехода на текущий контекст или настройте представление представленного контроллера представления
viewController.modalPresentationStyle = .OverCurrentContext
- Измените переход на "Перекрестное растворение" или "Вертикальное покрытие"
viewController.modalTransitionStyle = .CoverVertical
Я уверен, что вы можете применить эту технику и другими способами, хотя это дорого.
Следующие свойства класса UIView являются анимируемыми:
@property Frame
@ свойства собственности
@property центр
@property transform
@property alpha
@property backgroundColor
@property contentStretch