【发布时间】:2020-06-10 20:03:18
【问题描述】:
我有一个包含 UITextField 的标题的 collectionview(基本上是搜索)。我想在编辑此字段时更新 collectionview 数据。主要问题是调用collectionView.reloadData() 后键盘被关闭。所以我每次重新加载只能输入一个一个字符。我试过用 reloadItems() 替换 reloadData() 但它没有帮助。我怎样才能避免这种情况?我知道我可以在 collectionView 中放置一个搜索字段,但这对我来说不是一个正确的解决方案。 (您可以查看 Instagram 搜索关注者)
我做了什么:
searchField.addTarget(self, action: #selector(textFieldChanged), for: .editingChanged)
然后将此数据传递给我的 RestAPI 服务器:
@objc func textFieldChanged(_ textField: UITextField) {
guard let searchQuery = textField.text else { return }
if !searchQuery.isEmpty {
APIService.sharedInstance.searchSubscribers(userId: user.id, token: User.sharedInstance.token, type: segment.selectIndex == 0 ? .followers : .following, query: searchQuery) { (fetchedUsers) in
DispatchQueue.main.async {
self.subcribersList = fetchedUsers
self.collectionView.reloadData()
}
}
} else {
fetchList(listType: segment.selectIndex == 0 ? .followers : .following, scrollAnimation: false)
}
}
【问题讨论】:
标签: swift uitableview uicollectionview uitextfield