【问题标题】:InputAccessoryView with custom view created in IB带有在 IB 中创建的自定义视图的 InputAccessoryView
【发布时间】:2020-06-12 14:12:27
【问题描述】:

我已经阅读了很多关于这个主题的材料,但其中大多数都是以编程方式创建自定义视图。

是否可以将 InputAccessoryView 与在 IB 中创建的自定义视图一起使用?在故事板中,我添加了 textInputView,其中我添加了文本视图和发送按钮等,如下面的屏幕截图所示。

我遵循了代码,因此出于某种原因删除了表格视图,因此我无法使其正常工作。我在情节提要中添加了表格视图。

我在这里只展示了与 InputAccessoryView 相关的代码。

class InputAccViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

    @IBOutlet weak var tableView: UITableView!
    @IBOutlet weak var textView: UITextView!
    @IBOutlet weak var textInputView: UIView!
    // other code

    override var canBecomeFirstResponder: Bool { return true }

    override var inputAccessoryView:UIView {
       get{
           return self.textInputView
       }
   }

    override func viewDidLoad() {
        super.viewDidLoad()

        textInputView.removeFromSuperview()
        // other code
    }
     // other code tableview delegates etc...
}

左侧屏幕截图是不显示表格视图的附件视图代码。如果我注释掉与附件视图相关的代码,它会显示表格视图,如右侧屏幕截图所示。

【问题讨论】:

  • 并且tableView显示没有输入附件视图?
  • 它显示了 inputTextView,正如您在屏幕截图中看到的那样。在文本视图中输入确实会显示键盘。由于 tableview 没有显示我无法检查拖动以关闭功能。我不确定为什么在为附件视图添加代码后不显示表格视图?如果我删除附件视图,表视图就会出现。
  • 如果你删除这一行会发生什么:'textInputView.removeFromSuperview()'?

标签: ios swift tableview inputaccessoryview


【解决方案1】:

似乎您可能将UITableView 的底部限制在textInputView 的顶部。当您将textInputView 设置为inputAccessoryViewUIViewController 时,这不再按预期工作。将textInputView 设置为inputAccessoryView 时,请确保将UITableView 的底部限制为UIViewControllerview 的底部。

【讨论】:

  • 我不得不进行一些猜测才能弄清楚这一点。如果您在将来发布新问题时提供有关实施的更多详细信息会更好。
  • 我不确定这是否是约束问题,否则我会根据需要添加更多详细信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-20
  • 2012-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多