UISplitViewController сжимает левую сторону при вращении с видимым всплывающим меню


Я никогда не видел, чтобы это происходило раньше, и я не могу понять, что это вызывает, может быть, вы можете помочь. У меня есть UISplitViewController в качестве корневого контроллера вида. Левая сторона представляет собой UINavigationController с контроллером табличного представления. Я могу вращаться от потрайта к ландшафту и обратно снова и снова без каких-либо проблем. Однако, если я нахожусь в портретной ориентации и нажимаю кнопку меню, чтобы показать UIPopoverController, содержащий левосторонний навигационный контроллер, и повернуть в альбомную ориентацию, пока меню видимый вид слева с навигационным контроллером становится тоньше! Левая сторона становится примерно на 30 пикселей тоньше, и появляется зазор между левой стороной и контроллером детального вида.

Я ошарашен. Есть идеи?

EDIT: всплывающее меню не должно быть видно во время вращения. Это только должно быть показано в то время как в портрете для того, чтобы проблема калибровки произошла. У меня нет кода, который изменяет размер чего-либо в моих методах делегата UISplitViewController. Я только обновляю панель инструментов в контроллере подробного представления для добавления / удаления элемента кнопки строки меню. Я записал размер кадра левого контроллера до/после / во время вращения и до/после / во время показа в всплывающем окне, и он всегда отображается как 320 в ширину.

Кенни

1 5

1 ответ:

Я нашел решение. Мой контроллер детального просмотра на правой стороне имел UIImageView, который содержал фоновое изображение. Фоновое изображение было достаточно большим для портретной ориентации, поэтому оно больше, чем UIImageView, когда оно было изменено для ландшафтного вида. Его режим содержимого был установлен в центр. По какой-то причине это является причиной уменьшения размера левого бокового вида (хотя левая боковая рамка никогда не менялась в любой точке). Установка флажка "обрезать подвиды" в окне xib для моего контроллера детального вида, кажется, решил проблему.