如何控制 UISearchDisplayController 的 searchResultsTableView?

发布于 2024-08-20 06:59:36 字数 592 浏览 12 评论 0原文

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

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

当然,你可以尝试没有UISearchDisplayController,但我指望这个类的优点,我只是想自定义tableView

I wonder how to take control over the table view that is used by the UISearchDisplayController. You can't overwrite the searchResultsTableView property of the UISearchDisplayController, because it is a read-only property.

I've tried to overlay the searchResultsTableView by a custom UITableView. That works just once, but as soon as you try a second search, the real searchResultsTableView is on top again. (I mean, you type in some text in the searchBar, your custom table view is on top and displays the search results, afterwards you press the cancel button. Now, if you repeat this, your custom table won't be displayed and the searchResultTableView of the UISearchDisplayController wil be on top).

Of course, you can try it without a UISearchDisplayController, but I count on the advantages of this class, I just want to customize the tableView.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

自控 2024-08-27 06:59:36

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

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

You cannot set the searchResultsTableView, but you can manipulate it in the appropriate delegate method:

-(void)searchDisplayController:(UISearchDisplayController *)controller didLoadSearchResultsTableView:(UITableView *)tableView {
   tableView.backgroundColor = self.tableView.backgroundColor;
   tableView.separatorColor = self.tableView.separatorColor;
       ...
困倦 2024-08-27 06:59:36

您在 UISearchDisplayController 上有一个 TableViewDataSource 属性,此数据源生成 UITableViewCell。实现 UITableViewDataSource 协议,您将可以在方法中控制 tableView 的自定义:
<代码>

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

You have a TableViewDataSource property on the UISearchDisplayController, this data source produces the UITableViewCell. Implement the UITableViewDataSource protocol and you'll have the control over the customization of the tableView in the method :

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文