我正在开发一款消息应用程序,但我希望在用手指按下键盘时将其关闭。
我知道可以通过以下方式实现:
keyboardDismissMode = .interactive
但我不知道如何在移动键盘时更改表视图(tableview)的约束,就像iOS上的WhatsApp应用程序一样。
有人能帮我吗?
编辑:
这是我已经拥有的:
我有一个简单的UITableView来显示我的消息
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return messages.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var celda = UITableViewCell()
let message = messages[indexPath.row]
if message.owner == 0{
celda = tableView.dequeueReusableCell(withIdentifier: "messageOther")!
}else{
celda = tableView.dequeueReusableCell(withIdentifier: "messageMine")!
}
let fondoView = celda.viewWithTag(1)
fondoView?.layer.cornerRadius = 10
let messageLabel = celda.viewWithTag(2) as! UILabel
messageLabel.text = message.text
let fecha = Date(timeIntervalSince1970: TimeInterval(message.date))
let dateFormatter = DateFormatter()
dateFormatter.timeStyle = .short
dateFormatter.timeZone = .current
let dateLabel = celda.viewWithTag(3) as! UILabel
dateLabel.text = dateFormatter.string(from: fecha)
return celda
}
我的viewDidLoad方法中:
override func viewDidLoad() {
super.viewDidLoad()
messagesTableView.keyboardDismissMode = .interactive
getMessages()
}
键盘用手指推动就可以隐藏,这是我目前了解到的情况,但我不知道如何使我的UITextField像WhatsApp和iMessage一样跟随键盘移动,同时从UITextField开始推动而不是从键盘开始。
非常感谢您的帮助!