Как предотвратить исчезновение строки состояния до того, как UIImagePickerController закроет весь экран?
Вот GIF, показывающий проблему:
При представлении UIImagePickerController
как это:
self.present(imagePicker, animated: true, completion: nil)
строка состояния исчезнет до того, как средство выбора изображений станет полноэкранным.
Проблема, с которой я столкнулся, заключается в том, что когда строка состояния исчезает в облаке дыма, панель навигации поднимается вверх, занимая пустоту, оставленную строкой состояния. когда UIImagePickerController
закрывается, строка состояния отображается на своем законном месте.
В настоящее время я не настраиваю строку состояния в любом случае, все по умолчанию.
Есть ли способ предотвратить UIStatusBar
от исчезновения, по крайней мере до UIImagePickerController
анимация завершена?
1 ответ
Если вы хотите, чтобы ваша строка состояния оставалась в верхней части экрана, вы должны создать собственное окно и применить анимацию вручную. Это может помочь:
var newWindow = UIWindow()
let newController = viewControllerToPresent()
var animationDuration = 0.4 // or whatever you want.
// setting newController as root of new window.
self.window.rootViewController = newController
self.window.windowLevel = UIWindowLevelStatusBar
self.window.backgroundColor = .clear
self.window.frame = CGRect(x: 0, y: UIScreen.main.bounds.height, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height)
self.window.isHidden = false
UIView.animate(withDuration: animationDuration) {
self.window.frame = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height)
}