我有一个自定义表格视图单元格,它是我的表格视图中的第一个单元格,其中我有一个文本字段,我试图让函数像搜索功能一样。 我希望表视图的其余部分中的数据在用户输入时更新。我通过.addTarget设置搜索单元格的textField以触发EditingChanged,因此每次用户在textField中输入新内容时,它都会显示更新的结果。但似乎调用self.tableView.reloadData()会在每个字母后触发EditingDidEnd并隐藏键盘。
通过addTarget到搜索单元的UITextField,我有一个函数searchBarEditingChanged(searchTextField: UITextField)
,self.tableView.reloadData()
之后我调用了searchTextField.becomeFirstResponder()
我怎样才能解决这个问题?
我之前正在考虑使用搜索控制器,但我不喜欢你必须下拉才能使搜索栏可见
编辑:
尝试使用此代替
let sectionsToReload = IndexSet(1...sectionHeaders.count)
self.tableView.reloadSections(sectionsToReload, with: .none)
但它在reloadSections上崩溃:2017-05-22 15:37:21.600257 MYAPP[565:89501] *** Assertion failure in -[UITableView _endCellAnimationsWithContext:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3600.6.22/UITableView.m:1284
答案 0 :(得分:2)
将文本字段和结果保存在两个不同的部分,仅在搜索重新加载结果部分。这应该工作
答案 1 :(得分:0)
UITextFieldDelegate方法中的view.endEditing(false)。
答案 2 :(得分:0)
使用gridExtra Wiki - 这就是它的用途。