索引
索引的添加是通过表视图的数据源协议方法(UITableViewDatasource)实现的。
01. // 添加索引
02. - (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
03. {
04. return 分组标题的数组;
05. // 返回值是一个数组,表示的是索引的标题,一般是字母A-Z表示分组标题的首字母
06. }
07. ...
搜索栏(UISeachBar)
与索引不同的是,搜索栏是区别于表视图的一个独立控件。
搜索栏的特点:
- 无法更改控件高度,系统默认值 44 px
- 可以在默认样式上添加各种按钮类型丰富搜索栏的风格,比如书签按钮等
- 能够响应编辑输入事件,按钮点击事件和scope(范围)点击事件
在表视图中添加搜索栏的基本步骤
1,添加搜索栏,其实搜索栏与表视图是同一级的
01. ... // 在ViewDidLoad()方法中
02. UISearchBar *searchBar = [[UISearchBar alloc] init];
03. searchBar.frame = CGRectMake(0,0,320,44); //高度无法更改,无论设置何值,始终默认44px
04. // 通过setShows...属性,附加多种按钮
05. [searchBar setShowsCancelButton:YES];
04. // 显示
05. [self.view addSubView:searchBar]; // 同级
06. ...
2, 遵守协议,设置代理
01. ... // 在之前配置搜索栏信息的位置
02. searchBar.delegate = self;
03. ...
3,实现需要的协议方法,要求实现:
搜索栏中文本内容发生更改时实时检索表视图的内容
01. ...
02. - (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
03. {
04. // 调用一个检索关键字的方法
05. }
06. ...
07. // 这样搜索栏的部分基本完成,剩下的是表视图中的响应
实际上,搜索栏的功能只是处理各种事件,检索功能和显示结果的实现都与搜索栏无关。
- 检索功能:自定义实现,返回值是表视图需要显示的数据源
- 显示结果:通过监听搜索栏中文本的长度,来加载不同的数据源