Эта проблема является сложной в зависимости от вашего сценария пользовательского интерфейса. Здесь я буду обсуждать сценарий, в котором UITextField или UITextview находится в UITableViewCell.
Вам необходимо использовать NSNotificationCenter для обнаружения события UIKeyboardDidShowNotification.
см. http://iosdevelopertips.com/user-interface/adjust-textfield-hidden-by-keyboard.html. Вам необходимо уменьшить размер кадра UITableView, чтобы он занимал только область экрана, которая не покрыта клавиатурой.
- Если вы коснетесь UITableViewCell, ОС автоматически разместит ячейку в пределах области просмотра UITableView. Но это не происходит, когда вы касаетесь UITextView или UITableViewCell, даже если они находятся в UITableViewCell.
Вам нужно позвонить
[myTableView selectRowAtIndexPath:self.indexPath animated:YES scrollPosition:UITableViewScrollPositionBottom];`
, чтобы программно «коснуться» ячейки.
Если вы реализуете обе точки, вы увидите положение UITextView / Field прямо над клавиатурой. Имейте в виду, что UITableViewCell, в котором находится UITableView / Field, не может быть выше, чем «не покрытая» область. Если это не так для вас, есть другой подход, но я не буду обсуждать здесь.