先把源码贴出来

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. js实现td排序及分组分类

    如题 <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.o ...

  2. Qt学习

    博客 一去丶二三里的博客 http://blog.sina.com.cn/s/articlelist_2801495241_0_4.html

  3. flex超链接

    <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...

  4. offset,client,scroll,style相关笔记

    1.offsetTop 功能:获取元素上外缘与最近的定位父元素内壁的距离,如果没有定位父元素,则是与文档上内壁的距离 使用方法:js document.querySelector(...).offse ...

  5. ant android打包--学习第一弹

    1. 准备工作 用eclipse创建一个android项目 安装ant和SDK,并且添加到系统环境变量 2.ant 使用 2.1 ant简单的帮助命令 ant -p 2.2 创建ant配置文件%AND ...

  6. 拖动滚动条时某一处相对另一处固定不动(position:fixed)

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...

  7. phpmyadmin导出数据中文乱码问题

    phpMyAdmin版本是2.9.1.1 用phpMyAdmin备份数据库,导出来后,在本地用sqlyog还原的时候,出现如下错误:Error occured at:2009-03-03 10:09: ...

  8. php 环信 接口的例子

    <?php class Hxcall{ private $app_key = 'yunjiankang#medical'; private $client_id = 'YXA6ARjBgDnxE ...

  9. 直接拿来用!Facebook移动开源项目大合集

    直接拿来用!Facebook移动开源项目大合集 时间:2014-04-22 15:37 作者:唐小引 随着iOS依赖管理工具CocoaPods和大量第三方开源库成熟起来,业界积累了大量的优秀开源项目. ...

  10. struts2中的<s:select>默认选项

    //... public class SelectAction extends ActionSupport{ private List<String> searchEngine; priv ...