Исходное значение для UITextField в UITableViewCell - PullRequest
0 голосов
/ 23 декабря 2011

Я бы хотел прокрутить мой UITableView вверх, когда отображается клавиатура, чтобы текстовые поля не закрывались клавиатурой.Я знаю, как прокручивать tableView, contentInset и т. Д. У меня проблемы с вычислением расстояния до прокрутки.

У меня есть размеры клавиатуры (от UIKeyboardDidShowNotification).Однако у меня возникают проблемы с получением полезного исходного значения для редактируемого текстового поля.Происхождение UITextField, переданное textFieldDidBeginEditing, не помогает: значение одинаково независимо от редактируемого textField.textField.superview.origin тоже не помогает.

Как получить полезное значение для источника редактируемого textField?

Я буду использовать это значениевместе с высотой клавиатуры, чтобы определить расстояние для прокрутки.

Ответы [ 2 ]

2 голосов
/ 23 декабря 2011

Лично я считаю, что лучше всего изменить рамку табличного представления, чтобы оно вообще не скрывалось клавиатурой (вы можете посмотреть на рамку клавиатуры и изменить рамку табличного представления на основании этого).Затем прокрутите табличное представление, используя scrollToRowAtIndexPath:atScrollPosition:animated:, чтобы ячейка была видимой.

Таким образом, UITableView обрабатывает, каким должно быть фактическое смещение содержимого.

1 голос
/ 23 декабря 2011

Если ваша высота строки и высота заголовка одинаковы, вы можете просто получить значение строки и умножить его на высоту строки, чтобы получить правильный источник.Если вы используете переменные высоты строк / заголовки разделов, то с этим подходом все становится немного сложнее.

Второй подход, только что опубликованный MattJGalloway, когда я печатал, состоит в изменении фрейма табличного представления итогда позвольте tableView прокрутить себя.Это был бы мой предпочтительный подход.

...