#objective-c #ios #cocoa-touch
#objective-c #iOS #cocoa-touch
Вопрос:
Я создал несколько текстовых полей внизу, которые требовали ввода пользователей. Существует ли какой-либо метод, который может автоматически увеличивать представление при появлении клавиатуры?
Комментарии:
1. Возможно, вы захотите взглянуть на TPKeyboardAvoiding , универсальное решение для перемещения текстовых полей с клавиатуры в iOS.
Ответ №1:
См. Перемещение содержимого, расположенного под клавиатурой, или эта реализация на основе Вычисление области, покрываемой клавиатурой.
По сути, вам нужно смонтировать свое представление в UIScrollView и добавить нижнюю вставку содержимого с той же высотой, что и клавиатура. Затем прокрутите с помощью setContentOffset:animated: . Это общее решение, которое вы можете использовать повторно.
Более простой, но не универсальный способ заключается в том, что если у вас достаточно места в нижней части вашего представления без редактируемых элементов управления, вы просто прокручиваете до фиксированной позиции для каждого поля редактирования.
Комментарии:
1. Обратите внимание, вам не обязательно использовать UIScrollView. Вы можете просто уменьшить значение y свойства center вашего основного представления, а затем снова увеличить его, когда клавиатура скроется. Вид прокрутки хорош тем, что позволяет вашим пользователям видеть другие части интерфейса, пока у них есть клавиатура, но это добавляет немного сложностей.
2. Тем не менее, я использую UIViewController для своей программы, можно ли решить проблему в этой среде?
3. @morningstar Было бы неплохо, если бы вы ссылались или предоставляли какой-либо код / скриншот о том, где / как изменяется свойство center.
Ответ №2:
используйте свойство -contentoffset вашего представления.