【问题标题】:How to control the searchResultsTableView of a UISearchDisplayController?如何控制 UISearchDisplayController 的 searchResultsTableView?
【发布时间】:2010-02-03 15:35:19
【问题描述】:

我想知道如何控制UISearchDisplayController 使用的表格视图。您不能覆盖UISearchDisplayControllersearchResultsTableView 属性,因为它是只读 属性。

我尝试用自定义UITableView 覆盖searchResultsTableView。这仅适用于一次,但一旦您尝试第二次搜索,真正的searchResultsTableView 就会再次出现在首位。 (我的意思是,您在searchBar 中输入一些文本,您的自定义表格视图位于顶部并显示搜索结果,然后按取消按钮。现在,如果您重复此操作,您的自定义表格将不会显示并且 UISearchDisplayController 的 searchResultTableView 将位于顶部)。

当然,不带UISearchDisplayController也可以试试,不过我指望这个类的优势,我只是想自定义tableView

【问题讨论】:

    标签: iphone uitableview customization uisearchdisplaycontroller


    【解决方案1】:

    您无法设置 searchResultsTableView,但可以在适当的委托方法中对其进行操作:

    -(void)searchDisplayController:(UISearchDisplayController *)controller didLoadSearchResultsTableView:(UITableView *)tableView {
       tableView.backgroundColor = self.tableView.backgroundColor;
       tableView.separatorColor = self.tableView.separatorColor;
           ...
    

    【讨论】:

    • 谢谢菲利克斯,我已经成功地尝试过了,但这不是我想做的。我真的很想设置我自己的 UITableView 子类。我不想只是操纵 searchResultsTableView 的属性。
    • @burki 你设法使用你的 UITableView 子类了吗?我也遇到了同样的问题。
    【解决方案2】:

    您在UISearchDisplayController 上有一个TableViewDataSource 属性,此数据源生成UITableViewCell。实现UITableViewDataSource 协议,您将可以在方法中控制 tableView 的自定义: <pre>- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath</pre>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      • 2010-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多