2016-09-28 2 views
0

У меня есть UITableView с UITextViews в каждой ячейке. Я хочу переместить ячейку, в которой пользователь редактирует UITextView в верхней части таблицы.Таблица прокрутки таблицы вверх, когда появляется клавиатура BUG

Это легко достигается за счет:

self.tableView.contentInset = UIEdgeInsetsMake(0, 0, self.view.frame.size.height - textViewHeight, 0); 

Однако у меня есть очень странный вопрос, который я не могу найти что-либо на, при поиске для него. Ячейка не перемещается вверх, пока клавиатура не закончит анимацию на экране, независимо от того, какой метод я устанавливаю в contentInset. Это похоже на то, что анимация клавиатуры имеет какой-то приоритет.

После изучения, я обнаружил, что установка contentOffset в то же время, фактически переместит камеру вверх, даже до того, как клавиатура закончит анимацию.

Может ли кто-нибудь объяснить это поведение мне или объяснить, что происходит?

Спасибо!

ответ

0

Когда вы UITextfield или UITextview воля начала редактирования вызова метода в то время вы можете использовать UITableView метод

self.tableView.contentInset = UIEdgeInsetsMake(0, 0, self.view.frame.size.height - textViewHeight, 0); 
tableView.scrollToRowAtIndexPath(NSIndexPath, atScrollPosition: UITableViewScrollPosition, animated: Bool) 

и вы можете прокручивать вверх. Я надеюсь, что это поможет вам

+0

Как я уже писал, он не работает, независимо от того, какой метод делегата я называю. Он все еще ждет появления клавиатуры. –

0

Лучший способ для этого вида scenerio просто установить IQKeyboardManager Pods, и он автоматически прокручивает табличное представление, когда вы нажимаете на UITextView, вам не нужно ничего писать.

+2

Но я хочу понять, что происходит ... Не устанавливать стороннюю библиотеку –

0

Вы используете UITableView с ViewController. Но для достижения наилучшего способа использовать UITableViewController., Он автоматически прокручивается вверх (прокрутка вверх до клавиатуры и фокусировки на текстовом поле редактирования), когда пользователь вводит какие-либо данные.

+0

Мне нужна функциональность UIViewController, например, с основным UIView –

+0

, какие функции вы хотите ... посмотрите на этот ответ http://stackoverflow.com/questions/1126726/how-to-make-a-uitextfield-move-up-when-keyboard-is-present?rq=1 –

-1

попробуйте наблюдать за клавиатурой уведомления UIKeyboardWillShowNotification и UIKeyboardWillHideNotification, введите код в селекторный метод.

Смежные вопросы