В документации XCode Руководство по программированию приложений iPhone есть раздел «Перемещение содержимого, расположенного под клавиатурой», в котором говорится о получении уведомлений клавиатуры, когда клавиатура собирается показать. Там есть код, чтобы показать вам, как получить размер клавиатуры (который зависит от ориентации). Я не буду повторять это здесь.
Вы можете использовать ту же технику, чтобы получить уведомление UIKeyboardWillShowNotification
и высоту, где клавиатура окажется в конце. Это дает вам нижний край того места, куда должен идти ваш вид, эффективно помещая его над клавиатурой. Так что просто поместите текстовое поле и кнопку внутри представления. Когда вы получите уведомление, скажите вашему представлению, куда оно должно идти (высота клавиатуры + высота представления контейнера), и все готово. Вы также захотите поймать UIKeyboardWillHideNotification
, чтобы переместить вид назад туда, где он был, поэтому следите за исходной позицией контейнера.
Это довольно просто и будет хорошо смотреться, особенно если вы используете хороший анимационный эффект UIView и точно установите время.