先把源码贴出来

https://github.com/losedMemory/ZSSearchBar   这是我在github上写的一个Demo,大家可以看看

在大多数app中都会用到搜索功能,那么搜索功能的实现离不开UISearchBar这个控件.

UISearchBar继承自UIView,下面简单的介绍一下它的属性和方法.

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Menlo; color: #3495af }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Menlo }
span.s1 { color: #000000 }
span.s2 { }
span.s3 { color: #3495af }

UISearchBar *searchBar = [[UISearchBar alloc]init];

searchBar.frame = CGRectMake(0, 0, 300, 44);//初始化方法

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Menlo; color: #3495af }
span.s1 { color: #000000 }
span.s2 { }
span.s3 { color: #b4261a }
span.s4 { font: 15.0px "PingFang SC"; color: #b4261a }

[searchBar setPlaceholder:@"搜索"];//设置占位文字

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Menlo; color: #3495af }
span.s1 { color: #000000 }
span.s2 { }

[searchBar setBarTintColor:[UIColor orangeColor]];//在这里设置背景颜色

当然会有些人这么写:[searchBar setTintColor:[UIColor orangeColor]];但是根据文档这个方法在iOS7之后就不再影响bar的背景颜色

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Menlo; color: #3495af }
span.s1 { color: #000000 }
span.s2 { }
span.s3 { color: #0433ff }

[searchBar setTranslucent:YES];//设置是否透明

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Menlo; color: #3495af }
span.s1 { color: #000000 }
span.s2 { }
span.s3 { color: #0433ff }
span.s4 { color: #008f00 }
span.s5 { font: 15.0px "PingFang SC"; color: #008f00 }

[searchBar setShowsSearchResultsButton:YES];//是否显示搜索结果按钮

就是这个按钮,这个可以放大搜索结果

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Menlo; color: #3495af }
span.s1 { color: #000000 }
span.s2 { }

[searchBar setSearchTextPositionAdjustment:UIOffsetMake(30, 0)];//设置搜索框中文文本框的文本偏移量

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Menlo; color: #3495af }
span.s1 { color: #000000 }
span.s2 { }
span.s3 { color: #0433ff }
span.s4 { color: #b4261a }

[searchBar setShowsScopeBar:YES];

[searchBar setScopeButtonTitles:[NSArray arrayWithObjects:@"Singer",@"Song",@"Album", nil]];//这是设置搜索框下面的分栏的,效果如下:

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Menlo; color: #3495af }
span.s1 { color: #000000 }
span.s2 { }

[searchBar setSelectedScopeButtonIndex:1];//在这里设置默认选中的分栏

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Menlo }
span.s1 { }

[searchBar setInputAccessoryView:maskView];//在进行搜索时显示一个出现的遮罩,效果参照电话簿

[searchBar setShowsCancelButton:YES]  //是否显示取消按钮

//获取cancelButton的方法,可以设置其点击事件

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Menlo; color: #3495af }
span.s1 { color: #000000 }
span.s2 { }
span.s3 { color: #0433ff }
span.s4 { color: #b4261a }

UIButton *cancelButton = [self.searchBar valueForKey:@"_cancelButton"];

代理方法:

//已经开始进行编辑

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Menlo }
span.s1 { }
span.s2 { color: #0433ff }
span.s3 { color: #3495af }

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar

//UISearchBar得到焦点并开始编辑时,执行该方法

- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar

//取消按钮的点击事件

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar

//在键盘中的搜索按钮的点击事件

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar

//当搜索框中的内容发生改变时会自动进行搜索,这个是经常用的

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText

一般比较常用的就是这些

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Menlo; color: #3495af }
span.s1 { color: #000000 }
span.s2 { }

iOS中利用UISearchBar实现搜索的更多相关文章

  1. iOS中的两种搜索方式UISearchDisplayController和UISearchController

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 以前iOS的搜索一般都使用UISearchDisplayCon ...

  2. iOS中利用CoreTelephony获取用户当前网络状态(判断2G,3G,4G)

    前言: 在项目开发当中,往往需要利用网络.而用户的网络环境也需要我们开发者去注意,根据不同的网络状态作相应的优化,以提升用户体验. 但通常我们只会判断用户是在WIFI还是移动数据,而实际上,移动数据也 ...

  3. iOS中利用 runtime 一键改变字体

    1.准备 我们新建一个项目名叫ChangeFont,然后我就随便找了个名叫loveway.ttf的字体库拖进去,里面的工程目录大概就是这样的 目录 现在我们就简单的直接在storyboard上拖了一个 ...

  4. iOS中利用CoreTelephony获取用户当前网络状态(判断2G,3G,4G) by徐文棋

    前言: 在项目开发当中,往往需要利用网络.而用户的网络环境也需要我们开发者去注意,根据不同的网络状态作相应的优化,以提升用户体验. 但通常我们只会判断用户是在WIFI还是移动数据,而实际上,移动数据也 ...

  5. IOS中利用宏将RGB值转换为UIColor(转)

    可以在pch文件中定义宏,这样整个项目就都可以用了! #define UIColorFromRGBValue(rgbValue) [UIColor colorWithRed:((float)((rgb ...

  6. ios中利用NSDateComponents、NSDate、NSCalendar判断当前时间是否在一天的某个时间段内。

    应用中设置一般会存在这样的设置,如夜间勿扰模式,从8:00-23:00,此时如何判断当前时间是否在该时间段内.难点主要在于如何用NSDate生成一个8:00的时间和23:00的时间,然后用当前的时间跟 ...

  7. iOS之让UISearchBar搜索图标和placeholder靠左显示

    系统UISearchBar效果图: 需求效果图: 两种方案: 找到UISearchBar上的放大镜图标, 修改Frame. 同时判断在有无文本内容更改placeholder的颜色. 利用UISearc ...

  8. iOS 如何自定义UISearchBar 中textField的高度

    iOS 如何自定义UISearchBar 中textField的高度 只需设置下边的方法就可以 [_searchBar setSearchFieldBackgroundImage:[UIImage i ...

  9. 利用iOS中Safari浏览器创建伪Web App

    在safari浏览器里有一个“添加到主屏幕”选项,我们可以用来创建伪Web App,下面来了解一下iOS中Safari的私有属性 第一步设置Web App的主屏幕图标: 有两种属性值apple-tou ...

随机推荐

  1. bg-route

    1.目录 homework add.html online.html offline.html res script action homework add.js 2.add.html<div ...

  2. 解读QML之一

    http://cache.baiducontent.com/c?m=9d78d513d98002b8599dcb201a17a7374408c6347691c4523f8a9c12d522195646 ...

  3. c printf()详解[转载]

    ref : http://www.cnblogs.com/yuaqua/archive/2011/10/21/2219856.html #include <cstdio> #include ...

  4. asp的RegExp对象正则表达式功能用法

    RegExp对象提供简单的正则表达式支持功能. RegExp对象的用法: 以下为引用的内容: Function RegExpTest(patrn, strng) Dim regEx, Match, M ...

  5. Redis 笔记

    Redis是一个key-value存储系统.和Memcached类似,但是解决了断电后数据完全丢失的情况,而且她支持更多无化的value类型,除了和string外,还支持lists(链表).sets( ...

  6. hiho1246(数学求模)

    input 1<=n<=2000 a1 a2 ... an 1<=ai<=5*10e7 output n行,第i行指切成i段,每段和的最大公约数的最大值 做法:环形数组切成n段 ...

  7. gradle 构建spring源码时候报错

    这是使用jdk1.7报的错,我卸载1.7后使用1.8 ,就可以了

  8. 快学Scala-第五章 类

    知识点: 1.简单类和无参方法 class Counter { private var value = 0 //必须初始化字段 def increment() { value += 1} //方法默认 ...

  9. android viewpager 深究

    参考: http://blog.csdn.net/xushuaic/article/details/42638311 GitHub上相关的ViewPager动画的项目 https://github.c ...

  10. Linux 监控文件事件

    某些应用程序需要对文件或者目录进行监控,来侦测其是否发生了某些事件.Linux很贴心的为我们提供了inotify API,也是Linux的专有. inotify API 在使用之前一定要有一个inot ...