输入附件视图 Swift 错误

Input Accessory View Swift Bug

我有一个名为 Chat View Controller 的 View Controller,它在 Storyboard 中的组织方式如下:

这是通过导航控制器访问的。这个 View Controller 基本上是一个类似于 Apple 的 Messages 应用程序的视图。您可以在底部的聊天视图控制器外部看到的 "View" 是我尝试添加为输入附件视图的视图,称为 messagingView。要将其添加为输入附件视图,我在聊天视图控制器中使用以下代码:

override var inputAccessoryView: UIView {
    return messagingView // This is the "View"
}

override func canBecomeFirstResponder() -> Bool {
    return true
}

现在当视图加载时,messagingView 被添加到视图中,但它的高度是 568px! messagingView 的 width/height 没有任何约束,它会自动添加为名为“_UIKBAutolayoutHeightConstraint”的约束。我已尝试在 Apple 自己的 KeyboardAccessory 示例代码中使用我的 messagingView,它运行良好(用 Objective C 编写)。我已经尝试在 Swift 中重新创建他们的示例代码,它给出了与我遇到的问题完全相同的问题!这一定是 Swift 错误?!还是我忘了做什么??

谢谢

很确定这是 Swift 中的错误。发现最简单的方法是编辑updateViewConstraints()中的_UIKBAutolayoutHeightConstraint常量,使其在view出现前重新加载inputAccessoryView的高度

override func updateViewConstraints() {
    let constraint:NSLayoutConstraint = (tableView.inputAccessoryView!.constraints() as NSArray).objectAtIndex(0) as NSLayoutConstraint
    constraint.constant = 52
    super.updateViewConstraints()
}