IIViewDeck & строка состояния двойной высоты
Эй, недавно я заметил ошибку в IIViewDeck для iOS ( https://github.com/Inferis/ViewDeck)
Если вы запускаете приложение с помощью View Deck или пример приложения, когда отображается строка состояния In-Call, центральное представление не изменяется, когда строка состояния возвращается к своей нормальной высоте. Кто-то еще зарегистрировал это как проблему на GitHub ( https://github.com/Inferis/ViewDeck/issues/402)
Я пытался прослушать обратный вызов делегата приложения application:didChangeStatusBarFrame:
а потом звонит self.centerView.frame = self.centerViewBounds;
Но это не сработало.
Когда я зарегистрировал этот код, я увидел, что, по-видимому, уже сам изменяет размеры
Original Frame: {{0, 0}, {320, 548}}
New Frame: {{0, 0}, {320, 548}}
After Set: {{0, 0}, {320, 548}}
*********************
Original Frame: {{0, 0}, {320, 528}}
New Frame: {{0, 0}, {320, 528}}
After Set: {{0, 0}, {320, 528}}
*********************
Я также пытался установить свойство autoResize для различных видов, но безрезультатно.
Я бы очень хотел исправить эту ошибку, любая помощь очень ценится. Это библиотека, которую используют многие люди, и было бы неплохо поддержать ее. Я обязательно передам решение владельцу репо
1 ответ
Я тоже столкнулся с этой проблемой. Мое решение было: добавить наблюдателя в уведомление UIApplicationWillChangeStatusBarFrameNotification
и установить любой метод в качестве его селектора.
Затем в этом методе я создаю новый UINavigationController
со старым контроллером вида (который был в центре), как rootViewController
, И тогда я установил свойство centerController
в случае IIViewDeckController
класс с этим UINavigationController
,
Надеюсь, это кому-нибудь поможет.