2016-02-02 1 views
1

У меня есть UITableViewController с 3 статическими ячейками. Один с высотой 60,0 в верхней части и один с тем же размером внизу. Высота средней ячейки динамична и настолько велика, что все 3 ячейки вместе заполняют весь экран.
Средняя ячейка содержит UITextView, которая заполняет полную ячейку.
Моя проблема заключается в том, что когда я хочу напечатать что-то в этом TextView, табличное представление автоматически прокручивается, когда клавиатура поднимается, и я больше не вижу верхнюю часть ячейки, включая курсор, пока я вручную не прокручу туда.
Есть ли способ предотвратить прокрутку вида таблицы так автоматически? Или сказать, что он должен прокручиваться до верхней части ячейки, поэтому я вижу курсор?UITableView прокручивается вверху ячейки

Я уже пытался переопределить метод viewWillAppear(_:), не вызывая его супер метод, но затем я не могу прокрутить табличное представление достаточно вручную, поэтому я не могу добраться до последней ячейки, когда клавиатура видна.
Я также пробовал прокручивать вручную ячейку внутри textViewDidBeginEditing(_:), но ничего не изменил. Мой метод выглядел так.

func textViewDidBeginEditing(textView: UITextView) { 
    let indexPath = NSIndexPath(forRow: 1, inSection: 0) 
    self.tableView.scrollToRowAtIndexPath(indexPath, atScrollPosition: .Top, animated: true) 
} 

Я не знаю, что еще я мог бы попробовать, поэтому я был бы признателен за вашу помощь.

ответ

0

Ну, вы можете установить contentInset в Tableview так:

self.tableView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 80, right: 0) 

Таким образом, вы можете использовать дно, чтобы компенсировать смещения, которые вы хотите.

+0

Это делает TableView прокрутки еще до дна:/и это не очень хорошо выглядеть с огромным пустым пространством в нижней части –

+0

Пробуйте разные значения или отрицательные значения на начать редактирование, чтобы отрегулировать его, когда редактирование конца вызвано, просто верните его на 0 – RodolfoAntonici

+0

Я пробовал разные значения для нижней и верхней, но ни один из них не работал. Фактически это только делает невозможным переход в первую/последнюю ячейку с видимой клавиатурой. : / –

0
mainTableView.scrollsToTop = true 

ИЛИ

mainTableView.setContentOffset(CGPointZero, animated:true) 

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

  • Нет связанных вопросов^_^