如何仅在搜索结果为 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