如何仅在搜索结果为 0 时隐藏 UItableView
how to hide UItableView only when search result is 0
我试图在搜索结果为 0 时隐藏 tableViewUsers。但我的逻辑隐藏了 UItableView 和 UISearchBar "Located on table header" 结果是 0.what 我想查看 "No result View" 并保持搜索栏对用户可见以便再次搜索?
代码
public func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
searchBar.showsCancelButton = true
filteredUsers = users.filter {
[=10=].username.range(of: searchText, options: .caseInsensitive) != nil ||
[=10=].email.range(of: searchText, options: .caseInsensitive) != nil
}
if(filteredUsers.count == 0){
tableViewUsers.isHidden = true
view.backgroundColor = UIColor.white
view.addSubview(NoItemFoundVIew)
NoItemFoundVIew.center = view.center
}
else
{
tableViewUsers.reloadData()
}
}
在您的情况下,即使将自定义视图的背景颜色设置为 .clear 也应该足够了:
view.backgroundColor = UIColor.clear
我建议使用约束来添加视图而不是使用 .center 属性,但这取决于您。
否则,您可以将 tableView 的 backgroundView 属性 与自定义视图所具有的任何初始化程序一起使用。
tableView.backgroundView = NoItemFoundView()
并在有结果时将其删除。
tableView.backgroundView = nil
我就是这样做的
view.backgroundColor = UIColor.white
view.addSubview(NoItemFoundVIew)
NoItemFoundVIew.center = view.center
tableViewUsers.reloadData()
tableViewUsers.separatorStyle = .none
我试图在搜索结果为 0 时隐藏 tableViewUsers。但我的逻辑隐藏了 UItableView 和 UISearchBar "Located on table header" 结果是 0.what 我想查看 "No result View" 并保持搜索栏对用户可见以便再次搜索?
代码
public func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
searchBar.showsCancelButton = true
filteredUsers = users.filter {
[=10=].username.range(of: searchText, options: .caseInsensitive) != nil ||
[=10=].email.range(of: searchText, options: .caseInsensitive) != nil
}
if(filteredUsers.count == 0){
tableViewUsers.isHidden = true
view.backgroundColor = UIColor.white
view.addSubview(NoItemFoundVIew)
NoItemFoundVIew.center = view.center
}
else
{
tableViewUsers.reloadData()
}
}
在您的情况下,即使将自定义视图的背景颜色设置为 .clear 也应该足够了:
view.backgroundColor = UIColor.clear
我建议使用约束来添加视图而不是使用 .center 属性,但这取决于您。
否则,您可以将 tableView 的 backgroundView 属性 与自定义视图所具有的任何初始化程序一起使用。
tableView.backgroundView = NoItemFoundView()
并在有结果时将其删除。
tableView.backgroundView = nil
我就是这样做的
view.backgroundColor = UIColor.white
view.addSubview(NoItemFoundVIew)
NoItemFoundVIew.center = view.center
tableViewUsers.reloadData()
tableViewUsers.separatorStyle = .none