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,

Надеюсь, это кому-нибудь поможет.

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