У меня проблема с несколькими экранами в моем приложении, но я объясню, что происходит с моим домашним экраном. Надеюсь, решение не так сложно, как я думаю. Таким образом, мой домашний экран имеет логотип в верхней части, метку (заголовок) под ней, 3 горизонтальные кнопки под ней, и, наконец, кнопки настроек и информации в нижнем левом и правом углу соответственно, если используется портретная ориентация. Чтобы обеспечить альбомную ориентацию, маски для изменения размера не смогли получить желаемый вид, поэтому я применил
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
метод с оператором if и else, «if» использует CGRectMakes для рисования всех элементов, куда они должны идти в альбомной ориентации, а «else» перерисовывает их обратно на свои исходные места, когда они возвращаются в портретный ландшафт. Это все работает очень хорошо. Я вспомнил, что мы должны были справиться с двойной строкой состояния, поэтому я смоделировал ее, чтобы посмотреть, что она сделает с моим приложением. Когда я нахожусь на главном экране и включаю и выключаю его, автоматическое изменение размеров элементов (которые настроены для регулировки в соответствии с верхней частью представления) работает хорошо, слегка сжимая все вниз и не скрывая ничего. Я могу выключить его и включить без проблем.
Теперь вот проблема:
Когда у меня включена двойная строка состояния на другом экране, затем возвращаюсь на домашний экран, изменение размера не происходит, и оно перерисовывает мой экран в полном размере в соответствии с координатами и размерами, которые у меня есть в метод, который я упомянул ранее, поэтому настройки и кнопка информации нарисованы на полпути внизу экрана. То же самое происходит при переключении из горизонтального режима обратно в портретный режим на рабочем столе с уже включенной двойной строкой состояния.
Точно так же у меня есть карта между навигацией и панелью вкладок на другой странице. Когда вы уже находитесь на странице и включаете и выключаете ее, все отлично изменяется (рамка карты меняет высоту, а панель навигации перемещается вниз). Но опять же, у меня проблема при переключении на этот экран с другого экрана или из альбомной ориентации, потому что вместо правильного автоматического изменения размера, вид карты и панель навигации частично опускаются за панель вкладок, скрывая товарный знак Google, который является основанием для отклонения приложения.
Извините за длинную голову, но я хотел четко описать, какие обстоятельства вызывают эту проблему. Буду признателен за любые идеи, так как я не знаю, как к этому подойти.