iOS App开发中UISearchBar搜索栏组件的基本用法整理

基本属性

代码如下:

@UISearchBar search = [[UISearchBar alloc]initWithFrame:CGRectMake(0,44,320,120)];

pragma mark -基本设置


代码如下:

//控件的样式 默认--0白色,1是黑色风格

/*
UIBarStyleDefault          = 0,
UIBarStyleBlack            = 1,
search.barStyle =UIBarStyleDefault;
/*

UISearchBarStyleDefault,
// currently UISearchBarStyleProminent

UISearchBarStyleProminent, // used my Mail, Messages and Contacts(provides no default background color or image but will display one if customized as such系统提供的颜色和图片无效,自定制有效)

UISearchBarStyleMinimal    // used by Calendar, Notes and Music

*/

search.searchBarStyle =UISearchBarStyleDefault;

// 控件上面的显示的文字

search.text =@"HMT";

// 显示在顶部的单行文字,通常作为一个提示行

search.prompt =@"DOTA";

// 半透明的提示文字,输入搜索内容消失

search.placeholder =@"请输入要搜索的词语";

// bar的颜色(具有渐变效果)搜索栏闪动条和选择栏边框,取消按钮和选择栏被选中时候都会变成设置的颜色

search.tintColor = [UIColor redColor];

// 除搜索栏框框,就像贴了一张镂空了搜索栏的颜色贴图,不影响其他任何设置的颜色

search.barTintColor = [UIColor whiteColor];

// 指定控件是否会有透视效果

search.translucent =YES;

// 设置在什么的情况下自动大写

/*

UITextAutocapitalizationTypeNone,             //除非自己点击大写,否则永不大写

UITextAutocapitalizationTypeWords,            //以单词来区分,每个单词首字母大写

UITextAutocapitalizationTypeSentences,        //以句子来区分

UITextAutocapitalizationTypeAllCharacters,    //所有字母全部大写

*/

search.autocapitalizationType =UITextAutocapitalizationTypeNone;

// 对于文本对象自动校正风格(额,我也不知道有什么用)

/*

UITextAutocorrectionTypeDefault,

UITextAutocorrectionTypeNo,

UITextAutocorrectionTypeYes,

*/

search.autocorrectionType =UITextAutocorrectionTypeNo;

// 键盘的样式(具体可参考文章UITableView详解(一))

search.keyboardType =UIKeyboardTypeNumberPad;

pragma mark - 设置搜索栏右边按钮图标(UISearchBarIcon)


代码如下:

// 是否在控件的右端显示一个书的按钮

search.showsBookmarkButton =YES;

// 是否显示cancel按钮(静态)

//search.showsCancelButton = YES;

// 是否显示cancel按钮(带有动画效果)

[search setShowsCancelButton:YES animated:YES];

// 是否在控件的右端显示搜索结果按钮(图形是一个圆里面放着一个向下的箭头)

search.showsSearchResultsButton =YES;

// 搜索结果按钮是否被选中

search.showsSearchResultsButton =YES;

// 设置控件的右端显示搜索结果按钮处 --- 可用图片替换掉

[search setImage:[UIImage imageNamed:@"qiyi.png"]forSearchBarIcon:UISearchBarIconResultsList state:UIControlStateNormal];

pragma mark - 搜索栏下部选择栏


代码如下:

// 搜索栏下部的选择栏,数组里面的内容是按钮的标题

search.scopeButtonTitles = [NSArray arrayWithObjects:@"iOS",@"Android",@"iPhone",nil];

// 进入界面,搜索栏下部的默认选择栏按钮的索引(也就是第一出现在哪个选择栏)

search.selectedScopeButtonIndex =2;

// 控制搜索栏下部的选择栏是否显示出来(显示的话,就要修改search的frame,不显示的话80就够了)

search.showsScopeBar =YES;

pragma mark - 设置控件图片


代码如下:

// 设置控件背景图片

search.backgroundImage = [UIImage imageNamed:@"qiyi.png"];

// 设置搜索栏下部背景图片

search.scopeBarBackgroundImage = [UIImage imageNamed:@"qiyi.png"];

pragma mark - 协议UISearchBarDelegate

(不解释了,看名字,已经很明显了)

代码如下:

@编辑文本

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

(BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar;           // return NO to not become first responder

(void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar{          // called when text starts editing

[searchBar setShowsCancelButton:YES animated:YES];   //  动画显示取消按钮

}

(BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar;       // return NO to not resign first responder

(void)searchBarTextDidEndEditing:(UISearchBar *)searchBar;            // called when text ends editing

(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{   // called when text changes (including clear)

@ 当搜索内容变化时,执行该方法。很有用,可以实现时实搜索

}

代码如下:

(BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)textNS_AVAILABLE_IOS(3_0);                 // called before text changes
@按钮点击

(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar;     // called when keyboard search button pressed

(void)searchBarBookmarkButtonClicked:(UISearchBar *)searchBar;        // called when bookmark button pressed

(void)searchBarCancelButtonClicked:(UISearchBar *) searchBar{           // called when cancel button pressed

[searchBar setShowsCancelButton:NO animated:NO];    // 取消按钮回收

[searchBar resignFirstResponder];                                // 取消第一响应值,键盘回收,搜索结束

}

(void)searchBarResultsListButtonClicked:(UISearchBar *)searchBarNS_AVAILABLE_IOS(3_2);// called when search results button pressed

(void)searchBar:(UISearchBar *)searchBar selectedScopeButtonIndexDidChange:(NSInteger)selectedScopeNS_AVAILABLE_IOS(3_0);

数据刷选类:NSPredicate


代码如下:

@假设: NSArray array = [[NSArray alloc]initWithObjects:@"luna",@"moon",@"",@"lion",@"coco", nil];

// 数据的处理主要发生在这个方法中

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

// 方法一:([c]不区分大小写[d]不区分发音符号即没有重音符号[cd]既不区分大小写,也不区分发音符号。)

NSPredicate * predicate = [NSPredicate predicateWithFormat:@"SELF CONTAINS [cd] %@",searchText];

//  数组提供的快速遍历,返回的类型是NSArray

NSLog(@"%@",[ _array filteredArrayUsingPredicate:predicate]);

// 方法二:

for (int i = 0; i count]; i++) {

if ([predicate evaluateWithObject:[ _array objectAtIndex:i]]) {

NSLog(@"%@",[arrayobjectAtIndex:i]);

}

}

}

(0)

相关推荐

  • IOS 开发之UISearchBar 详解及实例

    IOS UISearchBar 详解 iPhone开发之UISearchBar学习是本文要学习的内容,主要介绍了UISearchBar的使用,不多说,我们先来看详细内容.关于UISearchBar的一些问题. 1.修改UISearchBar的背景颜色 UISearchBar是由两个subView组成的,一个是UISearchBarBackGround,另一个是UITextField. 要IB中没有直接操作背景的属性.方法是直接将 UISearchBarBackGround移去 seachBar=

  • iOS中使用UISearchBar控件限制输入字数的实现方法

    废话不多说了,直接给大家上关键代码了,具体代码如下所述: - (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText // called when text changes (including clear) { if (searchBar.text.length > IMPUT_MAX){ searchBar.text = [searchBar.text substringToIndex:15]

  • IOS改变UISearchBar中搜索框的高度

    一.系统的searchBar 1.UISearchBar的中子控件及其布局 UIView(直接子控件) frame 等于 searchBar的bounds,view的子控件及其布局 UISearchBarBackground(间接子控件) frame 等于searchBar的bounds UISearchBarTextField(间接子控件) frame.origin等于(8.0, 6.0),即不等于searchBar的bounds 2.改变searchBar的frame只会影响其中搜索框的宽度

  • iOS中的UISearchBar搜索框组件基础使用指南

    UISearchBar也是iOS开发常用控件之一,点进去看看里面的属性barStyle.text.placeholder等等.但是这些属性显然不足矣满足我们的开发需求.比如:修改placeholder的颜色.修改UISearchBar上面的UITextfield的背景颜色.修改UITextfield上面的照片等等. 为了实现上述的需求,最好写一个UISearchBar的子类就叫LSSearchBar吧 LSSearchBar.h如下: 复制代码 代码如下: #import <UIKit/UIKi

  • IOS开发代码分享之设置UISearchBar的背景颜色

    今天用到UISearchBar,之前网上提供的方法已经不能有效的去除掉它的背景色了,修改背景色方法如下: mySearchBar.backgroundColor = RGBACOLOR(249,249,249,1);     mySearchBar.backgroundImage = [self imageWithColor:[UIColor clearColor] size:mySearchBar.bounds.size];   //取消searchbar背景色 - (UIImage *)im

  • iOS中修改UISearchBar圆角的小技巧分享

    前言 在我们日常开发中,经常会遇到一些需求非要把 UISearchBar 默认的圆角矩形的圆角改大,顶端改成圆形的.虽然系统没有提供这个 API,不过还是有一个简单方法可以解决. 解决方法: 首先在 UIView 的 category 里加一个方法: UIView+Utils.m - (UIView*)subViewOfClassName:(NSString*)className { for (UIView* subView in self.subviews) { if ([NSStringFr

  • iOS App开发中UISearchBar搜索栏组件的基本用法整理

    基本属性 复制代码 代码如下: @UISearchBar search = [[UISearchBar alloc]initWithFrame:CGRectMake(0,44,320,120)]; pragma mark -基本设置 复制代码 代码如下: //控件的样式 默认--0白色,1是黑色风格 /* UIBarStyleDefault          = 0, UIBarStyleBlack            = 1, search.barStyle =UIBarStyleDefau

  • iOS App开发中扩展RCLabel组件进行基于HTML的文本布局

    iOS系统是一个十分注重用户体验的系统,在iOS系统中,用户交互的方案也十分多,然而要在label中的某部分字体中添加交互行为确实不容易的,如果使用其他类似Button的控件来模拟,文字的排版又将是一个解决十分困难的问题.这个问题的由来是项目中的一个界面中有一些广告位标签,而这些广告位的标签却是嵌在文本中的,当用户点击文字标签的位置时,会跳转到响应的广告页. CoreText框架和一些第三方库可以解决这个问题,但直接使用CoreText十分复杂,第三方库多注重于富文本的排版,对类似文字超链接的支

  • iOS App开发中Masonry布局框架的基本用法解析

    Masonry是一个轻量级的布局框架,拥有自己的描述语法,采用更优雅的链式语法封装自动布局,简洁明了并具有高可读性,而且同时支持 iOS 和 Max OS X.Masonry是一个用代码写iOS或OS界面的库,可以代替Auto layout.Masonry的github地址:https://github.com/SnapKit/Masonry Masonry使用讲解: mas_makeConstraints 是给view添加约束,约束有几种,分别是边距,宽,高,左上右下距离,基准线.添加过约束后

  • iOS App开发中UIViewController类的使用教程

    一.引言 作为MVC设计模式中的C,Controller一直扮演着项目开发中最重要的角色,它是视图和数据的桥梁,通过它的管理,将数据有条有理的展示在我们的View层上.iOS中的UIViewController是UIKit框架中最基本的一个类.从第一个UI视图到复杂完整项目,都离不开UIViewController作为基础.基于UIViewController的封装和扩展,也能够出色的完成各种复杂界面逻辑.这里旨在讨论UIViewController的生命周期和属性方法,在最基础的东西上,往往会

  • iOS App开发中使cell高度自适应的黑魔法详解

    在使用 table view 的时侯经常会遇到这样的需求:table view 的 cell 中的内容是动态的,导致在开发的时候不知道一个 cell 的高度具体是多少,所以需要提供一个计算 cell 高度的算法,在每次加载到这个 cell 的时候计算出 cell 真正的高度. 在 iOS 8 之前 没有使用 Autolayout 的情况下,需要实现 table view delegate 的 tableView(tableView: UITableView, heightForRowAtInde

  • iOS App开发中Core Data框架基本的数据管理功能小结

    一.何为CoreData CoreData是一个专门用来管理数据的框架,其在性能与书写方便上都有很大的优势,在数据库管理方面,apple强烈推荐开发者使用CoreData框架,在apple的官方文档中称,使用CoreData框架可以减少开发者50%--70%的代码量,这虽然有些夸张,但由此可见,CoreData的确十分强大. 二.设计数据模型 在iOS开发中,时常使用SQL数据库对大量的表结构数据进行处理,但是SQL有一个十分明显的缺陷,对于常规数据模型的表,其处理起来是没问题的,例如一个班级表

  • iOS App开发中的UISegmentedControl分段组件用法总结

    UISegmentedControl分段控件代替了桌面OS上的单选按钮.不过它的选项个数非常有限,因为你的IOS设备屏幕有限.当我们需要使用选项非常少的单选按钮时它很合适. 一.创建 复制代码 代码如下: UISegmentedControl* mySegmentedControl = [[UISegmentedControl alloc]initWithItems:nil]; 是不是很奇怪没有指定位置和大小呢?没错,我确实在他的类声明里只找到 initWithItems 而未找到 initWi

  • iOS App开发中UITextField组件的常用属性小结

    重点属性 在 Xcode 中使用 IB 给视图拖上去一个文本框后,选中文本框,可以在Attribute Inspector中设置其各种属性. Attribute Inspector 分为三部分,分别是 Text Field.Control 和 View 部分.我们重点看看 Text Field 部分. Text Field 部分有以下选项: 1.Text :设置文本框的默认文本. 2.Placeholder : 可以在文本框中显示灰色的字,用于提示用户应该在这个文本框输入什么内容.当这个文本框中

  • Android App开发中创建Fragment组件的教程

    你可以认为Fragment作为Activity的一个模块部分,有它自己的生命周期,获取它自己的事件,并且你可以在Activity运行的时候添加或者移除它(有点像你可以在不同的Activity中重用的一个"子Activity").这节课程讲述如何使用Support Library继承Fragment类,所以你的应用程序仍然是兼容运行的系统版本低于Android1.6的设备. 注意:如果你决定你的应用要求的最低的API级别是11或者更高,你不需要使用Support Library,反而能使

  • iOS App开发中使用设计模式中的单例模式的实例解析

    一.单例的作用 顾名思义,单例,即是在整个项目中,这个类的对象只能被初始化一次.它的这种特性,可以广泛应用于某些需要全局共享的资源中,比如管理类,引擎类,也可以通过单例来实现传值.UIApplication.NSUserDefaults等都是IOS中的系统单例. 二.单例模式的两种写法 1,常用写法 #import "LGManagerCenter.h" static LGManagerCenter *managerCenter; @implementation LGManagerCe

随机推荐

其他