Координаты UIView преобразуются при вращении во время появления клавиатуры - PullRequest
0 голосов
/ 06 мая 2010

iPad приложение; Я пытаюсь изменить свой вид, когда появляется клавиатура. Это равносильно вызову этого кода в соответствующее время:

 CGRect adjustedFrame = self.frame;
  adjustedFrame.size.height -= keyboardFrame.size.height;
 [self setFrame:adjustedFrame];

Использование этого метода для представления, содержащегося в приложении на основе uisplitview, работает во всех 4 направлениях, но с тех пор я обнаружил, что приложение на основе vanilla uiview не работает.

Что происходит, так это то, что видимость uisplitview достаточно умна, чтобы преобразовать координаты его подпредставлений (их рамки) так, чтобы источник находился в «верхнем левом углу» зрителя независимо от ориентации. Однако пользовательский интерфейс не может правильно сообщить эти координаты. Хотя начало координат указано как (0,0) во всех ориентациях, эффективное начало представления всегда такое, как если бы ipad находился в вертикальном положении.

Что странно в этом, так это то, что представление правильно вращается и рисует, но оно всегда начинается с буквального верхнего устройства слева. Как я могу получить представление, чтобы правильно сделать его источник «левым верхним» для зрителя, а не фиксированным верхним левым краем устройства? Что мне не хватает? Пожалуйста, для чего-то такого тривиального я уже потратил около 6 часов на это с каждой техникой грубой силы и исследовательским углом, о котором я только мог подумать.

Это оригинальный источник, который не работает в этом случае:

двигаться вверх UIToolbar

1 Ответ

0 голосов
/ 06 мая 2010

ОК, я не знаю, что ответ АКТУАЛЬНЫЙ на оригинальный вопрос, но я могу с уверенностью сказать, что один из способов решения этой проблемы - всегда следить за тем, чтобы вы не манипулировали представлением viewController напрямую. Всегда оборачивайте ваш вид внутри контейнера в основном «представлении», затем настройте его так, как вам необходимо. Работает точно так же, как и splitview, возможно потому, что в обоих случаях рассматриваемое представление является подпредставлением основного «представления». Какое облегчение!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...