UISearchBar
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演练
. 建立UINavigationController的应用程序
. 完成QQ好友不分组列表功能
2.1 建立好友数据模型
2.2 加载数据
2.3 设置tableView的数据源方法
. 添加搜索功能
3.1 在Storyboard中添加“搜索显示控制器”并讲解为什么是搜索显示控制器而不仅仅是搜索栏
3.2 在.h中遵守UISearchDisplayDelegate协议
3.3 添加过滤数组属性,以保存搜索结果
3.4 实现searchDisplayController代理方法实现搜索功能
- (BOOL)searchDisplayController:shouldReloadTableForSearchString:
3.5 修改数据源方法,针对不同的表格处理内容显示
UISearchBar的更多相关文章
- iOS 如何自定义UISearchBar 中textField的高度
iOS 如何自定义UISearchBar 中textField的高度 只需设置下边的方法就可以 [_searchBar setSearchFieldBackgroundImage:[UIImage i ...
- iOS之搜索框UISearchController的使用(iOS8.0以后替代UISearchBar+display)
在iOS 8.0以上版本中, 我们可以使用UISearchController来非常方便地在UITableView中添加搜索框. 而在之前版本中, 我们还是必须使用UISearchBar + UISe ...
- 更改UIsearchbar 的背景和cancel按钮(转)
修改背景 searchbar =[[UISearchBar alloc]initWithFrame:CGRectMake(,KTopBarHeight, , KTopBarHeight)]; sear ...
- UISearchBar控件-让我们来搞定!(转)
转载自:http://blog.sina.com.cn/s/blog_7b9d64af0101dfg8.html 最近用到搜索功能.于是,经过不断的研究,终于,有点懂了. 那就来总结一下吧,好 ...
- iOS开发——UI进阶篇(十九)UISearchBar控件简介
最近用到搜索功能.总结一下 搜索,无疑可以使用UISearchBar控件! 那就先了解一下UISearchBar控件吧! UISearchBar控件就是要为你完成搜索功能的一个专用控件.它集成了很多你 ...
- IOS开发UISearchBar失去第一响应者身份后,取消按钮不执行点击事件的问题
在iOS开发中,使用UISearchBar的时候,当搜索框失去焦点的时候,取消按钮是默认不能点击的,如图按钮的颜色是灰色的: 这是因为此时取消按钮的enabled属性被设置为NO了,那么当我们需要让 ...
- 修改UISearchBar的背景颜色
当你看到这篇博客你就已经发现了用_searchBar.backgroundColor = [UIColor clearColor];来设置UISearchBar的颜色完全没有效果: 并且,有些方法是想 ...
- iOS UISearchBar 设置取消按钮,回收键盘,并修改cancel为“取消”
继承协议: UISearchBarDelegate 在代理方法中设置: #pragma mark --- 搜索框开始编辑 --- - (void)searchBarTextDidBeginEditin ...
- iOS开发之直接使用UISearchBar
iOS开发中经常需要使用SearchBar,我们可以选择使用UISearchBar+UISearchController或者UISearchBar+UISearchDisplayController( ...
- 自定义UISearchBar
先上系统默认的UISearchBar,然后用KVO修改 UISearchBar *searchBar = [[UISearchBar alloc]initWithFrame:_topView.boun ...
随机推荐
- js获取当前时间&js 页面时钟
js获取当前时间 //获取当前时间,格式YYYY-MM-DD function getNowFormatDate() { var date = new Date(); var seperator1 = ...
- [Spring] - 动态设置properties
Spring的jar包用来做动态properties的getter/setter赋值方法: 1:需要的jar包: spring-beans-3.2.0.RC2.jar commons-logging- ...
- [Spring MVC] - SpringMVC的各种参数绑定方式
SpringMVC的各种参数绑定方式 1. 基本数据类型(以int为例,其他类似):Controller代码: @RequestMapping("saysth.do") publi ...
- 将WeX5部署到自己的Tomcat服务器上
页面服务UIServer布署 WeX5自带页面服务UIServer的是标准Web应用,可以部署在Java Web应用服务器上.下面介绍如何在Tomcat和WebLogic中部署WeX5的UIServe ...
- [家里蹲大学数学杂志]第237期Euler公式的美
1 Euler 公式 $e^{i\pi}+1=0$ (1) 它把 a. $e:$ 自然对数的底 $\approx 2. 718281828459$ (数分) b. $i$: 虚数单位 $=\sqr ...
- 《Linux内核分析》课程总结
朱宇轲 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 不知不觉,在网易 ...
- 【WCF】无废话WCF入门教程
一.概述 Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分.由 .NE ...
- power
http://software.intel.com/en-us/articles/power-efficiency-analysis-and-sw-development-recommendation ...
- cocos2d-x + Lua接入iOS原生SDK的实现方案[转]
相信很多朋友在使用cocos2d-x+lua开发游戏时都遇到过接入iOS原生SDK的问题,比如常见的接应用内支付SDK,广告SDK或是一些社交平台SDK等等,我也没少接过这类SDK.这篇文章主要是对我 ...
- oracle中的查询语句(关于出库入库信息表,明细表,把捆包箱表,单位信息表的集中查询)
--查出所有现金中心的单位IDwith AllUnitas(select t.ORGANIZATIONID orgid,t.parentidfrom CDMS_ORGANIZATION t where ...