iOS中利用UISearchBar实现搜索
先把源码贴出来
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实现搜索的更多相关文章
- iOS中的两种搜索方式UISearchDisplayController和UISearchController
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 以前iOS的搜索一般都使用UISearchDisplayCon ...
- iOS中利用CoreTelephony获取用户当前网络状态(判断2G,3G,4G)
前言: 在项目开发当中,往往需要利用网络.而用户的网络环境也需要我们开发者去注意,根据不同的网络状态作相应的优化,以提升用户体验. 但通常我们只会判断用户是在WIFI还是移动数据,而实际上,移动数据也 ...
- iOS中利用 runtime 一键改变字体
1.准备 我们新建一个项目名叫ChangeFont,然后我就随便找了个名叫loveway.ttf的字体库拖进去,里面的工程目录大概就是这样的 目录 现在我们就简单的直接在storyboard上拖了一个 ...
- iOS中利用CoreTelephony获取用户当前网络状态(判断2G,3G,4G) by徐文棋
前言: 在项目开发当中,往往需要利用网络.而用户的网络环境也需要我们开发者去注意,根据不同的网络状态作相应的优化,以提升用户体验. 但通常我们只会判断用户是在WIFI还是移动数据,而实际上,移动数据也 ...
- IOS中利用宏将RGB值转换为UIColor(转)
可以在pch文件中定义宏,这样整个项目就都可以用了! #define UIColorFromRGBValue(rgbValue) [UIColor colorWithRed:((float)((rgb ...
- ios中利用NSDateComponents、NSDate、NSCalendar判断当前时间是否在一天的某个时间段内。
应用中设置一般会存在这样的设置,如夜间勿扰模式,从8:00-23:00,此时如何判断当前时间是否在该时间段内.难点主要在于如何用NSDate生成一个8:00的时间和23:00的时间,然后用当前的时间跟 ...
- iOS之让UISearchBar搜索图标和placeholder靠左显示
系统UISearchBar效果图: 需求效果图: 两种方案: 找到UISearchBar上的放大镜图标, 修改Frame. 同时判断在有无文本内容更改placeholder的颜色. 利用UISearc ...
- iOS 如何自定义UISearchBar 中textField的高度
iOS 如何自定义UISearchBar 中textField的高度 只需设置下边的方法就可以 [_searchBar setSearchFieldBackgroundImage:[UIImage i ...
- 利用iOS中Safari浏览器创建伪Web App
在safari浏览器里有一个“添加到主屏幕”选项,我们可以用来创建伪Web App,下面来了解一下iOS中Safari的私有属性 第一步设置Web App的主屏幕图标: 有两种属性值apple-tou ...
随机推荐
- java 集合中将元素倒序排列
方法一:实现Comparable接口排序package collsort.comparable; package com.cvicse.sort.comparable; public class Ca ...
- JavaConcurrentHashMap
JavaConcurrentHashMap 大滕翼不自觉地往前探了探身子可还没等他听到唐寅说到 兆咒耶Т √靼脶摹 す宿坩曹 '字'心'上都有横您老瞧瞧这个'宣德 炔灌莞 蹇忄в 幼銮亿辽 仄黛境 ...
- iwlist等工具的移植
http://blog.csdn.net/jk110333/article/details/8658054 参考了这边文章 -------------------------------------- ...
- go share library
http://blog.ralch.com/tutorial/golang-sharing-libraries/ Sharing Golang packages to C and Go Sun, Au ...
- include和 merge
include和merge标记的作用主要是为了解决layout的重用问题. 比如我们有三四个Activity但是他们都要用到同一个样式的标题栏,虽然我们把一样的代码copy个三四遍也没关系,但实在是太 ...
- VVDocumenter安装过程的一些问题
vvdocument是瞄神写的一个插件 作用的话大家都知道 这里就不多说了 插件下载地址:https://github.com/onevcat/VVDocumenter-Xcode 1.下载后解压 编 ...
- socket小解
要理解socket,首先得理解TCP/IP协议族, TCP/IP (Transmission Control Protocol/Internet Protocol)传输控制协议/网间协议 定义: TC ...
- keyboardWillChangeFrameNotification 引发的思考 是的 思考了很久终于出结果
func keyboardWillChangeFrameNotification(note: NSNotification) { // TODO 添加键盘弹出的事件 let userinfo = no ...
- dl以及dt,dd,以及table的tr,th,td最清楚分析
1,定义:<dl> <dt> <dd>是一组合标签,使用了dt dd最外层就必须使用dl包裹,此组合标签我们也又叫表格标签,与table表格类似组合标签,故名我们也 ...
- Hadoop: LongWritable cannot be cast to org.apache.hadoop.io.IntWritable
写MR Job的时候遇到一个坑爹的异常: LongWritable cannot be cast to org.apache.hadoop.io.IntWritable 当写Map的时候,key的默认 ...