您的位置:首页 > 产品设计 > UI/UE

iOS--搜索UISearchController&&UISearchDisplayController

2016-01-12 11:11 543 查看
12rd,Jan,2016

打算实现一个带搜索的tableView,使用UISearchDisplayController时提示'UISearchDisplayerController' is deprecated. UISearchDisplayContrller has been replaced with UISearchController.所以本文将会通过两种方法实现改功能:

1. UISearchDisplayerController :实现iOS8以前的版本

2. UISearchController: 实现iOS8以后的版本



1.UISearchDisplayController

1)首先拖一个Search Bar and Search Display Controller到tableView上面,拖进去之后点击查看Search Display Controller观察到该对象的绑定情况。



2) 实现代理:

UISearchDisplayDelegate,UISearchBarDelegate
3)声明数据存储变量&&初始化数据:
NSArray *chatList; NSArray *resultList;
4)然后实现tableView的代理方法:numberOfScetionsInTableView, numberOfRowsInSection,cellForRowAtIndexPath 。分为两种情况,一种情况是默认显示的数据,一种是搜索结果要显示的数据(tableView == self.searchDisplayController.searchResultsTableView)

5)实现UISearchDisplayDelegate中的委托方法: 通过谓词方法过滤数据()



2. UISearchController

1) 实现代理:

UISearchResultsUpdating

2) 声明数据存储变量&&初始化数据:

NSMutableArray *chatList; NSMutableArray *resultList;

@property (nonatomic,
strong) UISearchController *searchController;
3) 初始化searchController:



4) 实现tableView的代理方法:numberOfScetionsInTableView, numberOfRowsInSection,cellForRowAtIndexPath 。分为两种情况,一种情况是默认显示的数据,一种是搜索结果要显示的数据。判断方法self.searchController.active 为真则是搜索结果的情况。
5)实现UISearchResultsUpdating的代理方法:
updateSearchResultsForSearchController即可



参考文献:


ios UISearchController


iOS开发-搜索栏UISearchBar和UISearchController

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: