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

Posted

技术标签:

【中文标题】使用 UISearchbar 和过滤后自定义新表【英文标题】:Customizing the new table after using UISearchbar and filtering 【发布时间】:2018-02-04 09:01:50 【问题描述】:

我正在使用 UISearchBar 来搜索我的表格。我的问题是,一旦我搜索某些内容,UISearchBar 就会创建一个新的 tableview 作为搜索结果的覆盖,并且这个新表基本上没有任何属性(没有背景、分隔符插入、所有白色等)。我怎样才能自定义这个新的表格视图(让它看起来像以前的一样)。我没有找到任何可以访问它以赋予它属性的功能,例如背景颜色左右。

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

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

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

【问题讨论】:

y 不要更改当前的 tableview 背景单元格,而不是每次搜索添加一个新单元格 【参考方案1】:

如下更新tableView的背景视图,

tableView.backgroundColor = UIColor.red()

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

【讨论】:

好吧伙计,这就是我已经尝试过的。问题是要创建一个新的表视图。但我找到了使用willDisplay 函数的解决方案。看看我的解决方案!【参考方案2】:

好吧,经过几个小时的尝试,找到了解决方案。以下两个函数还帮助我自定义了新表格视图的单元格,该单元格覆盖了我的旧表格视图。我不知道 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
        
    

【讨论】:

以上是关于使用 UISearchbar 和过滤后自定义新表的主要内容,如果未能解决你的问题,请参考以下文章

通过 UISearchBar 使用 CoreData 过滤查询

新浪微博客户端-自定义UISearchBar

使用 UISearchBar 过滤数组

使用 Swift 过滤 UISearchBar 的核心数据

如何在PBI中将计算得出的度量值放入“新表”中

通过 UISearchBar 过滤后 UITableView 不滚动顶部