我一直在查看各种关于如何在使用InputAccessoryView时用键盘交互式移动表视图updown的教程,但我没有找到任何解决方案。大多数的解决方案都建议使用键盘通知,这对我来说违背了使用InputAccessoryView的目的。我开始使用InputAccessoryView只是为了避免kb通知,因为使用kb通知很难实现拖动来交互式删除键盘。
我们如何用InputAccessoryView上下移动表视图?任何提示都可以,因为我已经知道如何使用kb通知来上下移动表格视图。
故事板设置-> https:/i.stack.imgur.com0QJyn.png
屏幕录制->。https:/imgur.comaS5Oi9VS
相关代码的片段
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...
}
当面对同样的问题时,我发现了一个简单的解决方案,对我来说是有效的。我把它放在这里,以便对其他人也有帮助。我所做的只是把 UIViewController
附带 UITableView
四面楚歌 UIView
子类 view
只需 UITableViewController
并使用 tableView
是在内置到它来填充数据。键盘功能上面的所有移动内容都是内置到了这个软件中。UITableViewController
. 由于我是通过程序化的方式来做布局的,所以我很容易就能尝试这个方法,并使之成功。你似乎是通过故事板来完成的,你自己试试这个,你会对结果感到欣慰的。到了最后,你的代码应该是这样的。
class InputAccViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var tableView: UITableView!
到这个
class InputAccViewController: UITableViewController {
// `@IBOutlet weak var tableView: UITableView!` removed
}