gpt4 book ai didi

iOS Swift3 用键盘移动一个 Textfield 和一个 ContainerView

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:25:14 25 4
gpt4 key购买 nike

我需要帮助才能让我的聊天 ViewController 在您打开和关闭键盘时表现得像 Whatsapp 一样。这意味着:如果键盘打开, View 会向上移动。如果关闭,则返回到原始位置。

我已经拥有的:我的聊天 ViewController 有一个 ContainerView,在 ContainerView 下面是一个 TextField。我已经设置了两个正在捕捉 UIKeyboardWillShow 和 UIKeyboardWillHide 的观察者。 ContainerView 和 TextField 在顶部、左侧、右侧和底部都有约束。它们之间是垂直间距。

我尝试过的d:我采用了 TextField 的底部约束并向其添加了键盘的高度。它正确移动。

我需要帮助的地方:ContainerView 内的 TableView 无法随 TextField 正确移动。以下是显示我的问题的一些屏幕截图:http://imgur.com/a/zd7mw

看起来键盘覆盖了 ContainerView。但 ContainerView 中的 TableView 似乎搞砸了。

我希望在单击 TextField 时显示“感谢您阅读示例消息”,但它被截断了。每次打开键盘时,我都想过向下滚动到底部,但如果你看着聊天的中间并尝试输入一些东西,那是行不通的,你想保持在你正在看的地方。

感谢您阅读本文并感谢您的帮助!

最佳答案

有两种方法可以完成您想要完成的任务:

  1. 以编程方式修改底部约束常量以包括键盘高度。这会将表格 View 的底部固定到顶部。

  2. 我会使用的方法是向您的 tableview 添加一个等于键盘高度的内容插图。这种方法更简单,因为它不需要您修改 View 约束常量。

这样开始:

override func viewDidLoad(){
NotificationCenter.default.addObserver(self, selector: #selector(keyboardHide), name: NSNotification.Name.UIKeyboardWillHide, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(keyboardShow), name: NSNotification.Name.UIKeyboardWillChangeFrame, object: nil)
}

func keyboardShow(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
self.tableView.contentInset = UIEdgeInsetsMake(0, 0, keyboardSize.height, 0)
}
}

func keyboardHide(notification: NSNotification) {
self.tableView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0)
}

请注意,如果您想将内容推到文本字段的底部,请将文本字段的高度添加到键盘高度。

关于iOS Swift3 用键盘移动一个 Textfield 和一个 ContainerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42739228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com