如何仅在搜索结果为 0 时隐藏 UItableView



当搜索结果为 0 时,我试图隐藏 tableViewUsers .但我的逻辑隐藏了 UItableView 和 UISearchBar"位于表头上"的结果是 0.我想查看什么"无结果视图"并保持搜索栏对用户可见以再次搜索?

法典

public func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
searchBar.showsCancelButton = true
filteredUsers = users.filter {
$0.username.range(of: searchText, options: .caseInsensitive) != nil ||
$0.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()
}
}

这就是我的做法

view.backgroundColor = UIColor.white
view.addSubview(NoItemFoundVIew)
NoItemFoundVIew.center = view.center
tableViewUsers.reloadData()
tableViewUsers.separatorStyle = .none

在您的情况下,即使将自定义视图的背景颜色设置为 .clear 也足够了:

view.backgroundColor = UIColor.clear

我建议使用约束来添加视图,而不是使用 .center 属性,而是由您决定的。

否则,您可以将 tableView 的 backgroundView 属性与自定义视图具有的任何初始化器一起使用。

tableView.backgroundView = NoItemFoundView()

并在有结果时将其删除。

tableView.backgroundView = nil

最新更新