首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >InputAccessory的Constraint UITableView

InputAccessory的Constraint UITableView
EN

Stack Overflow用户
提问于 2018-07-21 12:28:38
回答 1查看 107关注 0票数 4

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

我的控制器的viewDidLoad()

代码语言:javascript
复制
override func viewDidLoad() {

    super.viewDidLoad()
    noteTableView.transform = CGAffineTransform(rotationAngle: -(CGFloat)(Double.pi));
    noteTableView.keyboardDismissMode = .interactive


    noteTableView.delegate = self
    noteTableView.dataSource = self

    [...]

}

下面是让我的inputAccessoryView实际工作的两个函数

代码语言:javascript
复制
override var inputAccessoryView: UIView? {
        get {
            return inputBar
        }
}

override var canBecomeFirstResponder: Bool {
        return true
}

我在inputAccessory中的textfield上也有一个点击手势识别器,它可以将它的行为从“按钮”切换到适当的文本字段,所以这里有一点。

代码语言:javascript
复制
@objc func newButtonTapped(tapGestureRecognizer: UITapGestureRecognizer) {

    [...]

    inputBar.inputField.isSelectable = true
    inputBar.inputField.isEditable = true
    inputBar.inputField.becomeFirstResponder()

    [...]

}
EN

回答 1

Stack Overflow用户

发布于 2021-09-11 18:33:47

iOS 15中,苹果推出了keyboardLayoutGuide,这是一款随键盘变化而动态变化的UILayoutGuide (甚至是iPad上的键盘浮动模式)。

所以你要做的就是:

代码语言:javascript
复制
myTableView.bottomAnchor.constraint(equalTo: self.view.keyboardLayoutGuide.TopAnchor)

请在Apple's Developer Documentation或观看WWDC21 Session上阅读有关键盘布局指南的更多信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51452821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档