У меня есть табличное представление с ячейками таблицы.Каждая ячейка имеет текстовое поле.У меня есть следующий код для предотвращения блокировки нескольких нижних ячеек с помощью клавиатуры
@objc func keyboardWillShow(_ notification:Notification) {
if let keyboardSize = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue {
tableView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: keyboardSize.height, right: 0)
}
}
@objc func keyboardWillHide(notification: NSNotification) {
tableView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
}
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(TransactionViewController.keyboardWillHide), name: UIApplication.keyboardWillChangeFrameNotification, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(TransactionViewController.keyboardWillShow), name: UIApplication.keyboardWillChangeFrameNotification, object: nil)
}
Функция keyboardWillHide
работает, как и ожидалось.Однако, когда клавиатура скрыта, стол отскакивает назад вниз, в результате чего лишние пробелы не отображаются (это то, что я хочу).Что мне не нравится, так это то, как вы все еще можете прокручивать таблицу вниз до contentInset, откуда клавиатура была впервые показана.Есть ли способ сделать так, чтобы после исчезновения клавиатуры вы не могли прокрутить вниз по нижней части таблицы?