iOS--UISearchBar和UISearchDisplayController
UISearchBar继承自UIView、UIResponder、NSObject
- 属性:
autocapitalizationType————自动对输入文本对象进行大小写设置(包含4种类型,但是有时候键盘会屏蔽此属性)
autocorrectionType————自动对输入文本对象进行纠错。
backgroundImage————searchbar的背景图片,如果图片不是可伸缩的或者1点宽,则一般被平铺
barStyle————控件的样式
delegate————控件的委托,委托要遵从UISearchBarDelegate协议,默认是nil
keyboardType————输入时,键盘的样式
placeholder————半透明的提示文字,输入搜索内容消失
prompt————显示在控件顶部的一行提示文字
text————控件上面的显示的文字
showsBookmarkButton————是否在控件的右端显示一个书的按钮(输入文字时消失)
showsCancelButton————是否显示cancel按钮(默认是显示)
showsSearchResultsButton————是否在控件的右端显示搜索结果按钮
searchResultsButtonSelected————搜索结果按钮是否被选中
tintColor————bar的颜色(具有渐变效果)
translucent————指定控件是否会有透视效果
scopeButtonTitles————搜索栏下部的选择栏,数组里面的内容是按钮的标题
selectedScopeButtonIndex————搜索栏下部的选择栏按钮的个数
showsScopeBar————控制搜索栏下部的选择栏是否显示出来(需设置为YES 才能使用scopebar)
UISearchBar不执行搜索行为,必须使用delegate,当输入搜索文本、点击button按钮后,代理的方法会完成搜索对应的操作。
1.编辑输入事件:
2.点击按钮事件:
3.Scope按钮事件:
利用UISearchBar的委托事件 textDidChange, 当在搜索框中输入完成后,如果输入的文本长度>0,可以调用自己的搜索方法,得到搜索结果,然后再reloadData,刷新一下。如果输入文本长 度<0,则需要恢复到原始数据。这个方法可以在边输入搜索文本边显示结果。 如果需要按“search”按钮再搜索,则将上述操作放在searchBarSearchButtonClicked中。
利用UISearchDisplayController可以简化很多操作,也能达到搜索的目的。
属性:
active————是搜索界面可视化,默认为no,可用setActive方法设置.
delegate————委托
searchBar————在searchdisplaycontroller初始化后,searchbar是不可修改的,是readonly属性的.
searchContentController————管理搜索内容的试图控制器,一般是一个UITableViewController的实例,意思是针对一个UITableView的内容进行搜索
searchResultsDataSource————搜索结果的数据源
searchResultsDelegate————搜索结果的委托
searchResultsTableView————搜索结果要展示在哪个tableview中(read-only);
searchResultsTitle————搜索结果视图的title
初始化一个searchDisplayController:
UISearchBar * theSearchBar = [[[UISearchBar alloc] initWithFrame:CGRectMake(, , self.view.bounds.size.width-, )] autorelease]; theSearchBar.placeholder = @"enter province name"; theSearchBar.autocorrectionType = UITextAutocorrectionTypeNo; theSearchBar.autocapitalizationType = UITextAutocapitalizationTypeAllCharacters; theSearchBar.scopeButtonTitles = [NSArray arrayWithObjects:@"All",@"A",@"B",@"C",@"D" ,nil]; theSearchBar.showsScopeBar = YES; theSearchBar.keyboardType = UIKeyboardTypeNamePhonePad; theSearchBar.showsBookmarkButton = YES; tableView.tableHeaderView = theSearchBar; //将searchBar添加到tableView的头,注意滚动出屏幕后,搜索框也不在了,只出现在首页 UISearchDisplayController * searchdispalyCtrl = [[UISearchDisplayController alloc] initWithSearchBar:theSearchBar contentsController:self]; searchdispalyCtrl.active = NO; searchdispalyCtrl.delegate = self; searchdispalyCtrl.searchResultsDelegate=self; searchdispalyCtrl.searchResultsDataSource = self;
使用UISearchDisplayDelegate的委托方法进行搜索操作:
1.搜索状态改变:
2.装载和卸载tableview:
3.显示和隐藏tableview:
4.搜索条件改变时响应:
searchDisplayController 自身有一个searchResultsTableView,所以在执行操作的时候首先要判断是否是搜索结果的tableView,如果是显示的就是搜索结 果的数据,如果不是,是TableView自身的view,则需要显示原始数据。
if(tableView == self.searchDisplayController.searchResultsTableView){
arr = [self.filterContent valueForKey:key]; //搜索结果
} else{
arr = [self.localresource valueForKey:key]; //原始数据
}
这样就不需要每次都realoadData了。
一 个很好的实例可以参考:http://developer.apple.com/library/ios/#samplecode /TableSearch/Introduction/Intro.html#//apple_ref/doc/uid/DTS40007848
iOS--UISearchBar和UISearchDisplayController的更多相关文章
- 如何在UINavigationBar上添加UISearchBar以及UISearchDisplayController的使用 --OC --iOS
那我们开始吧,下面是Sely写的一个Demo,分享给大家. 新建一个项目, UISearchDisplayController 的 displaysSearchBarInNavigationBar太死 ...
- UISearchBar和 UISearchDisplayController的使用
感觉好多文章不是很全面,所以本文收集整合了网上的几篇文章,感觉有互相补充的效果. 如果想下载源码来看:http://code4app.com/search/searchbar .本源码与本文无关 1. ...
- iOS UISearchBar UISearchController
搜索栏的重要性我们就不说了,狼厂就是靠搜索起家的,现在越来越像一匹没有节操的狼,UC浏览器搜索栏现在默认自家的神马搜索,现在不管是社 交,O2O还是在线教育等都会有一个搜索栏的实现,不过彼此实现效果是 ...
- UISearchBar和UISearchDisplayController
原文 http://hi.baidu.com/happywilma0118/item/e6d5730a499bba1b3a53eef8 UISearchBar继承自UIView.UIResponder ...
- ios UISearchBar搜索框的基本使用
摘要: 小巧简洁的原生搜索框,漂亮而易用,如果我们的应用没有特殊需求,都可以使用它. iOS中UISearchBar(搜索框)使用总结 初始化:UISearchBar继承于UIView,我们可以像创建 ...
- iOS UISearchBar 设置取消按钮,回收键盘,并修改cancel为“取消”
继承协议: UISearchBarDelegate 在代理方法中设置: #pragma mark --- 搜索框开始编辑 --- - (void)searchBarTextDidBeginEditin ...
- 【iOS UISearchBar父控件是UIScrollView时,上移的问题】
如果UISearchViewController的父控件是UIScrollView,点击UISearchBar后,它会移出控制器外.如下,使用UIScrollView作为"消息"和 ...
- iOS UISearchBar学习笔记
UISearchBar 是一个搜索控件,它提供了一个文本输入框,一个查找button,一个书签button.一个取消button.我们须要使用UISearchBarDelegate代理来进行查找工作. ...
- ios - UISearchBar输入框背景色
//输入框背景色 bar.searchBarStyle = UISearchBarStyleMinimal; [bar positionAdjustmentForSearchBarIcon:UISea ...
- iOS开发之直接使用UISearchBar
iOS开发中经常需要使用SearchBar,我们可以选择使用UISearchBar+UISearchController或者UISearchBar+UISearchDisplayController( ...
随机推荐
- 短日期比较 js
function compareDate(startDate, endDate) { var arr = startDate.split("-"); var starttime = ...
- C++ async task
最近在搞Android 开发,里面多线程的使用比较频繁,java多线程接口很方便. Thread, AysncTask, Handler 这些接口比起posix提供的pthread_create()等 ...
- ecshop的Mysql操作类
摘要,这是直接摘抄的ecshop的mysql操作类:不过他这里的缓存是用的文件缓存,我们如果想直接使用,可以替换成memcache的或者redis的! <?php /** * ECSHOP MY ...
- Scrum团队
5.Scrum团队成立 5.1 团队名称,团队目标.团队口号.团队照: 团队名称:@four! 团队目标:做出像“数学口袋精灵”那么棒的软件 团队口号:多劳多得 团队照: 5.2 角色分配 产品负责人 ...
- ACM中的浮点数精度处理
在ACM中,精度问题非常常见.其中计算几何头疼的地方一般在于代码量大和精度问题,代码量问题只要平时注意积累模板一般就不成问题了.精度问题则不好说,有时候一个精度问题就可能成为一道题的瓶颈,让你debu ...
- C#获取本地或远程磁盘使用信息
因为公司有多个服务器,要检查磁盘的使用情况确定程序放哪个服务器和清理垃圾,所以写个小程序帮忙检查. 效果图: 后台代码: private void btnCheck_Click(object send ...
- C#设计模式——访问者模式(Visitor Pattern)
一.概述由于需求的改变,某些类常常需要增加新的功能,但由于种种原因这些类层次必须保持稳定,不允许开发人员随意修改.对此,访问者模式可以在不更改类层次结构的前提下透明的为各个类动态添加新的功能.二.访问 ...
- 论那些年我们讨论过的Bank系统!
今天呢我就和大家分享一下怎样用对象数组的形式来实现一个简单的银行系统, 首先呢,跟大家介绍一下这个简单的银行操作系统要实现的一些主要的功能: 主要功能有 : 1.开户功能 2.存款 3.取款 4.转账 ...
- 小知识~LocalDB在IIS上如何成功配置
LocalDB使用确实方便,它不像SQLSERVER那么重,对一个测试的DEMO或者并发量不大的项目可以使用它,但在进行IIS部署时,可能会出现一些问题,即你的IIS可能没有权限访问你的LocalDB ...
- js不间断滚动
CSS ul, li { margin: 0; padding: 0; } #scrollDiv { width: 300px; height: 25px; line-height: 25px; bo ...