单击 UISearchBar 的取消按钮后,如何使用 UISearchBar 刷新我的 UITableView?

Posted

技术标签:

【中文标题】单击 UISearchBar 的取消按钮后,如何使用 UISearchBar 刷新我的 UITableView?【英文标题】:How to refresh my UITableView with UISearchBar after click of cancel button of UISearchBar? 【发布时间】:2011-09-15 08:18:26 【问题描述】:

我在表格视图顶部使用带有 UISearchBar 的 UITableView,对我来说,除了一个问题,如果我搜索一个字母,则 uitableview 中的搜索结果会被过滤,之后一切正常,如果我滚动搜索结果直到我的表格视图结束然后如果我按下我的 uisearchbar 的取消按钮表格视图正在刷新所有数据但它不是从第一个单元格显示,它从(大约第 25 个单元格)显示,就像我滚动了多少在我的搜索结果中,在单击取消后显示了很长的长度。我不知道我还调用重新加载数据是什么问题,我需要在开始加载时显示 tableview。

提前感谢任何帮助。谢谢。

【问题讨论】:

【参考方案1】:

在处理取消按钮的- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBarDelegate 方法中,您可以添加一些代码以像这样滚动回表格视图的顶部

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar 
    // ... Code to refresh the Table View

    // Reload the Table View
    [self.tableView reloadData];

    // Scroll to top
    [self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:YES];

您可能需要使用滚动位置。而不是UITableViewScrollPositionTop,您可能需要使用UITableViewScrollPositionMiddleUITableViewScrollPositionBottom 甚至UITableViewScrollPositionNone

【讨论】:

非常感谢 Suhail Patel,您的回答非常有帮助,我的问题得到了解决。【参考方案2】:

在表格视图上调用以下方法:

[self.tableView reloadData];

然后它会刷新您的表格视图

【讨论】:

以上是关于单击 UISearchBar 的取消按钮后,如何使用 UISearchBar 刷新我的 UITableView?的主要内容,如果未能解决你的问题,请参考以下文章

单击搜索栏上的取消按钮时如何弹出本端视图控制器?

如何触发 UISearchBar 中的取消按钮?

使取消按钮下键盘

iOS - 即使在单击取消按钮后仍保留 ScopeBar

UISearchBar 在解雇后正在调整大小

UISearchBar 中不显示取消按钮