Как установить нижнее ограничение UITableView на верхнее ограничение UIView? - PullRequest
0 голосов
/ 12 декабря 2018

Я работаю над приложением чата.

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

У меня есть следующая настройка в моей раскадровке:

enter image description here

enter image description here

Я уже пробовал некоторые неработающие пакеты кода:

self.tableView.bottomAnchor.constraint(equalTo: self.inputBar.topAnchor)

Заранее спасибо за помощь!

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

1.Создайте IBOutlet для нижнего ограничения UITableview:

@IBOutlet weak var tableviewBottomConstaint: NSLayoutConstraint!

Это позволит нам программно изменить нижнее ограничение.

2. Установите наблюдателя напрослушивание событий клавиатуры:

// listen to keyboard show event
 NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow), name: NSNotification.Name.UIKeyboardWillShow, object: nil)
// listen to keyboard hide event
 NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide), name: NSNotification.Name.UIKeyboardWillHide, object: nil)

3. Определите 2 функции, которые будут вызываться при отображении / скрытии клавиатуры:

// keyboard shown
@objc func keyboardWillShow(notification: NSNotification) {
     tableviewBottomConstaint.constant = newValue
}

// keyboard hidden
@objc func keyboardWillHide(notification: NSNotification) {
         tableviewBottomConstaint.constant = newValue
}
0 голосов
/ 12 декабря 2018

Не добавляйте и не изменяйте никаких ограничений.Это то же самое, что и для любой клавиатуры с прокруткой.Вы просто следите за внешним видом клавиатуры и соответственно корректируете нижнюю часть содержимого таблицы.

...