我的应用程序有一个类似聊天的用户界面,所以我有一个底部的栏,那就是inputAccessoryView和我的tableView。我想要做的是当键盘在屏幕上和屏幕外时,适当地调整tableView的大小。然而,简单地将tableView的底部限制在inputAccessoryView的顶部似乎是不可能的。那么我如何在我的应用程序中实现这种类似消息的行为呢?

我的控制器的viewDidLoad()
override func viewDidLoad() {
super.viewDidLoad()
noteTableView.transform = CGAffineTransform(rotationAngle: -(CGFloat)(Double.pi));
noteTableView.keyboardDismissMode = .interactive
noteTableView.delegate = self
noteTableView.dataSource = self
[...]
}下面是让我的inputAccessoryView实际工作的两个函数
override var inputAccessoryView: UIView? {
get {
return inputBar
}
}
override var canBecomeFirstResponder: Bool {
return true
}我在inputAccessory中的textfield上也有一个点击手势识别器,它可以将它的行为从“按钮”切换到适当的文本字段,所以这里有一点。
@objc func newButtonTapped(tapGestureRecognizer: UITapGestureRecognizer) {
[...]
inputBar.inputField.isSelectable = true
inputBar.inputField.isEditable = true
inputBar.inputField.becomeFirstResponder()
[...]
}发布于 2021-09-11 18:33:47
在iOS 15中,苹果推出了keyboardLayoutGuide,这是一款随键盘变化而动态变化的UILayoutGuide (甚至是iPad上的键盘浮动模式)。
所以你要做的就是:
myTableView.bottomAnchor.constraint(equalTo: self.view.keyboardLayoutGuide.TopAnchor)请在Apple's Developer Documentation或观看WWDC21 Session上阅读有关键盘布局指南的更多信息。
https://stackoverflow.com/questions/51452821
复制相似问题