使用 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 和过滤后自定义新表的主要内容,如果未能解决你的问题,请参考以下文章