我正在使用聊天应用程序。
我想要做的是将输入栏自动对齐到表格视图。 现在,当我打开键盘时,tableview的底部约束应更改为输入栏的顶部约束,以便我可以看到最后一条消息。
我的故事板上有以下设置:
我已经尝试了一些代码,但是没有用:
self.tableView.bottomAnchor.constraint(equalTo: self.inputBar.topAnchor)
在此先感谢您的帮助!
答案 0 :(得分:1)
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
}
答案 1 :(得分:0)
请勿添加或更改任何约束。这与在其后具有滚动视图的任何键盘相同。您只需要注意键盘的外观并相应地调整表格视图底部的内容即可。