iPad приложение; Я пытаюсь изменить свой вид, когда появляется клавиатура. Это равносильно вызову этого кода в соответствующее время:
CGRect adjustedFrame = self.frame;
adjustedFrame.size.height -= keyboardFrame.size.height;
[self setFrame:adjustedFrame];
Использование этого метода для представления, содержащегося в приложении на основе uisplitview, работает во всех 4 направлениях, но с тех пор я обнаружил, что приложение на основе vanilla uiview не работает.
Что происходит, так это то, что видимость uisplitview достаточно умна, чтобы преобразовать координаты его подпредставлений (их рамки) так, чтобы источник находился в «верхнем левом углу» зрителя независимо от ориентации. Однако пользовательский интерфейс не может правильно сообщить эти координаты. Хотя начало координат указано как (0,0) во всех ориентациях, эффективное начало представления всегда такое, как если бы ipad находился в вертикальном положении.
Что странно в этом, так это то, что представление правильно вращается и рисует, но оно всегда начинается с буквального верхнего устройства слева. Как я могу получить представление, чтобы правильно сделать его источник «левым верхним» для зрителя, а не фиксированным верхним левым краем устройства? Что мне не хватает? Пожалуйста, для чего-то такого тривиального я уже потратил около 6 часов на это с каждой техникой грубой силы и исследовательским углом, о котором я только мог подумать.
Это оригинальный источник, который не работает в этом случае:
двигаться вверх UIToolbar