如何将UITableView的底部约束设置为UIView的顶部约束?

时间:2018-12-12 19:11:27

标签: ios swift constraints

我正在使用聊天应用程序。

我想要做的是将输入栏自动对齐到表格视图。 现在,当我打开键盘时,tableview的底部约束应更改为输入栏的顶部约束,以便我可以看到最后一条消息。

我的故事板上有以下设置:

enter image description here

enter image description here

我已经尝试了一些代码,但是没有用:

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

在此先感谢您的帮助!

2 个答案:

答案 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)

请勿添加或更改任何约束。这与在其后具有滚动视图的任何键盘相同。您只需要注意键盘的外观并相应地调整表格视图底部的内容即可。