第四章:IOS Table表视图搜索功能UISearchBar
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第四章:IOS Table表视图搜索功能UISearchBar相关的知识,希望对你有一定的参考价值。
UISearchBar经常会跟UITable一齐使用,所以在此就介绍一下UISearchBar
先来看看结构
下面再看看它有哪些样式
-
基本搜索栏。里面????的Search文字用于提示用户??入查询关??字,搜索栏的Placeholder属性可以设置这个提示信息
-
带有??除按钮的搜索栏。在??入框中??入文字时,会在后面出现??????除按钮,点????除按钮可以??除??入框中的文字
-
带有查询结果按钮的搜索栏。显示最??搜索结果,显示设定如图4-31所示,选中 Options下的Shows Search Results Button复选框,事件??应由UISearch- BarDelegate对象中的searchBarResultsListButtonClicked:方法管理
-
带有书签按钮的搜索栏。显示用户收??的书签列表,显示设定如图4-31所示,选 中Options 中的Shows Bookmarks Button复选框,事件??应由UISearchBarDelegate 对象中的searchBarBookmarkButtonClicked:方法管理
-
带有取??按钮的搜索栏。显示设定如图4-31所示,选中Options下的Show Cancel Button复选框,事件??应由UISearchBarDelegate对象中的searchBarCancel- ButtonClicked:方法管理
-
带有Scope的搜索栏。显示设定如图4-31所示,选中Options下的Shows Scope Bar 复选框,同时需要设定下面的Scope Titles。选中这个选项时,搜索栏一出现?? 会在下面显示Scope Titles。如果????化时不??显示,??在搜索栏??得??点时显 示,??可以在视图控制器的viewDidLoad方法中加入下面的代码:
[self.searchBar setShowsScopeBar:NO];
[self.searchBar sizeToFit]; 其次,事件??应由UISearchBarDelegate或 UISearchDisplayDelegate对象管理
注:搜索的时候可以用 这个类NSPredicate具体使用方法可以在百度一下
在使用前必须使用两个协议
- UISearchBarDelegate
- UISearchDisplayDelegate
在搜索栏中??入查询??件,会??发UISearchBarDelegate委托对象的searchBar:textDidChange:方法和 UISearchDisplayDelegate委托对象的searchDisplayController:shouldReloadTableForSearchString:方 法,我们实现??们其中之一??可以??到搜索的基本目的。searchDisplayController:shouldReloadTable- ForSearchString:方法的优??在于可以控制表视图数据源是否重新加载。如果采用UISearchBarDelegate委托对象的searchBar:textDidChange:方法实现搜索功能,我们还需
要自己调用[tableView reloadData]方法重新加载表视图数据。
本例中实现了searchDisplayController: shouldReloadTableForSearchString:方法,??在ViewController.m文件中的实现代码如下:
- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString { //如果??回YES????表视图可??重新加载 return YES; }
ios9之后已经不再建议使用UISearchDisplayController,已经改用UISearchController而且在xcode7.2.1版本里面,界面是不能拖出UISearchController
以上是关于第四章:IOS Table表视图搜索功能UISearchBar的主要内容,如果未能解决你的问题,请参考以下文章