码迷,mamicode.com
首页 > 其他好文 > 详细

UISearchBar

时间:2015-02-08 21:53:24      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:

UISearchBar——方便用户搜索信息

在移动应用程序的世界里,用户对信息获取的速度要求非常高!iOS用户希望他们需要的信息能够迅速地,直观地展现在他们面前
因为UITableView的上下滚动能让用户迅速,自然地浏览大量信息,许多基于UIKit的应用都使用了UITableView来组织信息。但如果信息量非常非常大,让用户上下滚动如此长的列表是非常没有
效率的。所以一个搜索的功能就是必须的了 UISearchBar控件,能让用户迅速的筛选有用的信息! 今时今日,用户在应用里看到很长的列表时,都会期待一个搜索的功能。如果他们找不到搜索功能,他们会非常的沮丧

UISearchBar工作原理

其本身不做任何搜索,而仅是提供一个基本的iOS搜索栏界面
UISearchBar类用delegate协议的方式来告诉应用程序的其他部分,用户正在搜索栏中做什么
程序员需要自己编写对比字符串和过滤搜索的方法

注意:实际应用中需要使用Search Bar and Search Display Controller

为什么是Search Bar and Search Display Controller?

搜索显示控制器用来控制一个搜索栏以及一个table view。这个table view会显示搜索过滤后的信息,而这些信息来源于另一个视图控制器
即“search display controller”(搜索显示控制器)需要知道table view controller控制的数据,然后在自己的table view中显示搜索过滤后的结果。这个table view会覆盖
table view controller的视图,这样用户只能看到过滤后的结果

UISearchBar的属性(1)

Text: 设置出现在搜索栏中的默认字符串,如果需要指定默认搜索内容时使用
Placeholder: 在搜索栏没有添入任何字符串时,一般会显示一串灰色的字符来提示用户输入搜索信息
Prompt: 属性值会出现在搜索栏上方。对于有复杂搜索功能的程序,用户可能需要一些指导信息
Style & Tint: 设置搜索栏的样式和颜色。建议使用和UINavigationBar上同样的设置

UISearchBar的属性(2)

Show Search Results Button: 如果选中此选项,搜索栏右边会出现一个灰色按钮。可以用来显示最近几次的搜索,或者上次搜索的结果,通过Search Bar的代理方法可以控制该按钮的行为
Show Bookmarks Button: 如果选中此选项,搜索栏右边会出现一个标准的蓝色书签按钮。用户可以调出他们储存的书签,通过Search Bar的代理方法可以控制该按钮的行为
Show Cancel Button: 如果选中此选项,搜索栏右边会出现一个标准的取消按钮,让用户取消搜索。初始不要选中此选项,因为当用户在搜索栏中输入内容后,该按钮会自动出现
Shows Scope Bar(显示范围栏) & Scope Titles(范围标题): 帮助用户在指定范围内进行搜索,以缩小搜索范围
Capitalize(大小写)、Correction(自动纠错)、Keyboard(键盘): 与UITextField的属性相同,用于辅助用户输入

UISearchBar演练

1. 建立UINavigationController的应用程序
2. 完成QQ好友不分组列表功能
2.1    建立好友数据模型
2.2    加载数据
2.3    设置tableView的数据源方法
3. 添加搜索功能
3.1    在Storyboard中添加“搜索显示控制器”并讲解为什么是搜索显示控制器而不仅仅是搜索栏
3.2    在.h中遵守UISearchDisplayDelegate协议
3.3    添加过滤数组属性,以保存搜索结果
3.4    实现searchDisplayController代理方法实现搜索功能
- (BOOL)searchDisplayController:shouldReloadTableForSearchString:
3.5    修改数据源方法,针对不同的表格处理内容显示

 

UISearchBar

标签:

原文地址:http://www.cnblogs.com/HJiang/p/4280511.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!