Вопрос:
Модифицированный представленный контроллер представления не перемещается назад после того, как строка состояния в вызове исчезает, оставляя 20px пустым/прозрачным пространством вверху.
Обычный: Нет проблем
In-Call: No Issues
После вызова In-Call:
Выдает 20px высокое пустое/прозрачное пространство сверху, показывающее оранжевый вид ниже. Однако строка состояния все еще присутствует в прозрачной области. Панель навигации также оставляет место для строки состояния, ее "всего 20 пикселей слишком мало в размещении".
- Основанный на iOS 10
- Модифицированный контроллер представления.
- Пользовательская модальная презентация
- Контроллер основного вида оранжевый
- Не использовать Autolayout
- При повороте на Пейзаж, 20px In-Call Bar оставляет и все еще оставляет 20px-зазор.
- Я отказываюсь от отображения строки состояния в ландшафтных ориентациях. (то есть большинство акций)
Я попробовал прослушивать App Delegates:
willChangeStatusBarFrame
didChangeStatusBarFrame
Также просматривать уведомления на основе контроллера:
UIApplicationWillChangeStatusBarFrame
UIApplicationDidChangeStatusBarFrame
Когда я регистрирую фрейм представленного представления для всех четырех вышеописанных методов, кадр всегда находится в начале (y: 0).
Update
Просмотр пользовательского модального представления контроллера
let storyboard = UIStoryboard(name: "StoryBoard1", bundle: nil)
self.modalVC = storyboard.instantiateViewController(withIdentifier: "My Modal View Controller") as? MyModalViewController
self.modalVC!.transitioningDelegate = self
self.modalVC.modalPresentationStyle = .custom
self.modalVC.modalPresentationCapturesStatusBarAppearance = true;
self.present(self.modalVC!, animated: true, completion: nil)
func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
let containerView = transitionContext.containerView
let fromViewController = transitionContext.viewController(forKey: UITransitionContextViewControllerKey.from)
let toViewController = transitionContext.viewController(forKey: UITransitionContextViewControllerKey.to)
toViewController!.view.transform = CGAffineTransform(scaleX: 0.001, y: 0.001)
UIView.animate(withDuration: 0.5, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0.0, options: [.curveEaseOut], animations: { () -> Void in
toViewController!.view.transform = CGAffineTransform.identity
}, completion: { (completed) -> Void in
transitionContext.completeTransition(completed)
})
}