使用UISearchbar和过滤后自定义新表

时间:2018-02-04 09:01:51

标签: ios swift uitableview uisearchbar

我正在使用UISearchBar搜索我的表格。我的问题是,一旦我搜索某些东西,UISearchBar就会创建一个新的tableview作为覆盖搜索结果,这个新表基本上没有任何属性(没有背景,分隔符插入,一切都是白色等)。如何自定义此新表视图(使其看起来像之前的那个)。我找不到任何可以访问它的功能,以便为其提供属性,例如背景颜色左右。

是否有可用于自定义视图的功能?我正在使用这个函数,至少单元格的高度是相同的:

override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return 90
}

以下屏幕截图最能说明我的问题。

enter image description here

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:0)

更新tableView的背景视图,如下所示,

tableView.backgroundColor = UIColor.red()

tableView.backgroundView = UIView()
tableView.backgroundView.backgroundColor = UIColor.red()

答案 1 :(得分:0)

经过几个小时的努力,好吧找到了解决方案。以下两个函数帮助我自定义新表视图的单元格,这些单元格放在我的旧表格视图上。我不知道willDisplay函数,但它的工作原理应该如下:

  override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 90
    }

    override func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
        if(searchActive){
            cell.backgroundColor = UIColor.clear
            tableView.backgroundView = UIImageView(image: UIImage(named: "darkBackground"))
            tableView.separatorStyle = .none
        }
    }