当前位置: 首页 > 编程日记 > 正文

iOS中UISearchBar(搜索框)使用总结

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

iOS中UISearchBar(搜索框)使用总结

初始化:UISearchBar继承于UIView,我们可以像创建View那样创建searchBar

    UISearchBar * bar = [[UISearchBar alloc]initWithFrame:CGRectMake(20, 100, 250, 40)];[self.view addSubview:bar];

@property(nonatomic)        UIBarStyle              barStyle;

这个属性可以设置searchBar的搜索框的风格,枚举如下:

typedef NS_ENUM(NSInteger, UIBarStyle) {UIBarStyleDefault          = 0,//默认风格 白色搜索框,多出的背景为灰色UIBarStyleBlack            = 1,//黑色风格,黑色的搜索框//下面两个枚举已经被禁用,作用和黑色风格一样UIBarStyleBlackOpaque      = 1, // Deprecated. Use UIBarStyleBlackUIBarStyleBlackTranslucent = 2, // Deprecated. Use UIBarStyleBlack and set the translucent property to YES
};

@property(nonatomic,copy)   NSString               *text;

设置搜索框中的文字

@property(nonatomic,copy)   NSString               *prompt;

这个属性的官方解释是在搜索框顶部显示一行文字,其实就是背景文字,上图说明:

   bar.prompt = @"搜索框";bar.text=@"321111111111111111111111111"

效果如下:

171722_IiCf_2340880.png

@property(nonatomic,copy)   NSString               *placeholder;

和其他文本输入控件的placeholder相同,在输入文字时就会消失

@property(nonatomic)        BOOL                    showsBookmarkButton;

是否在搜索框右侧显示一个图书的按钮,默认为NO,YES的效果如下:

172040_6Imi_2340880.png

@property(nonatomic)        BOOL                    showsCancelButton;

是否显示取消按钮,默认为NO,YES的效果如下:

172206_lasH_2340880.png

@property(nonatomic)        BOOL                    showsSearchResultsButton;

是否显示搜索结果按钮,默认为NO,YES效果如下:

172743_efn5_2340880.png

@property(nonatomic, getter=isSearchResultsButtonSelected) BOOL searchResultsButtonSelected ;

设置搜索结果按钮的选中状态

- (void)setShowsCancelButton:(BOOL)showsCancelButton animated:(BOOL)animated;

设置显示取消按钮

@property(nonatomic,retain) UIColor *tintColor;

设置这个颜色值会影响搜索框中的光标的颜色

@property(nonatomic,retain) UIColor *barTintColor;

设置这个颜色会影响搜索框的背景颜色

@property (nonatomic) UISearchBarStyle searchBarStyle;

设置搜索框整体的风格,枚举如下:

typedef NS_ENUM(NSUInteger, UISearchBarStyle) {UISearchBarStyleDefault,    // currently UISearchBarStyleProminentUISearchBarStyleProminent,  // 显示背景UISearchBarStyleMinimal     // 不显示背景
} NS_ENUM_AVAILABLE_IOS(7_0);

@property(nonatomic,assign,getter=isTranslucent) BOOL translucent;

设置是否半透明

@property(nonatomic)      BOOL       showsScopeBar ;

是否显示搜索栏的附件选择按钮试图,要想显示这个试图,首先要将这个属性设置为YES,之后给按钮数组中添加按钮,使用下面这个属性:

@property(nonatomic,copy) NSArray   *scopeButtonTitles ;

设置选择按钮试图的按钮标题

@property(nonatomic)      NSInteger  selectedScopeButtonIndex;

设置一个默认的选中按钮

    bar = [[UISearchBar alloc]initWithFrame:CGRectMake(20, 100, 250, 200)];bar.showsScopeBar=YES;bar.scopeButtonTitles = @[@"12",@"2",@"3",@"4"];

183544_lq37_2340880.png

@property (nonatomic, readwrite, retain) UIView *inputAccessoryView;

键盘的附属试图

@property(nonatomic,retain) UIImage *backgroundImage;

设置搜索框的背景图案

@property(nonatomic,retain) UIImage *scopeBarBackgroundImage;

设置附属选择按钮视图的背景图案

- (void)setBackgroundImage:(UIImage *)backgroundImage forBarPosition:(UIBarPosition)barPosition barMetrics:(UIBarMetrics)barMetrics ;

- (UIImage *)backgroundImageForBarPosition:(UIBarPosition)barPosition barMetrics:(UIBarMetrics)barMetrics

这一对方法可以设置和获取某个状态枚举下的搜索框的背景图案

- (void)setSearchFieldBackgroundImage:(UIImage *)backgroundImage forState:(UIControlState)state;

- (UIImage *)searchFieldBackgroundImageForState:(UIControlState)state;

这一对方法用于设置和获取搜索框中TextField的背景图案

- (void)setImage:(UIImage *)iconImage forSearchBarIcon:(UISearchBarIcon)icon state:(UIControlState)state ;

- (UIImage *)imageForSearchBarIcon:(UISearchBarIcon)icon state:(UIControlState)state ;

这一对方法用于获取和设置搜索栏icon图片的图案

- (void)setScopeBarButtonBackgroundImage:(UIImage *)backgroundImage forState:(UIControlState)state;

- (UIImage *)scopeBarButtonBackgroundImageForState:(UIControlState)state;

这一对方法用于设置和获取搜索框的附加选择按钮视图的背景图案

- (void)setScopeBarButtonDividerImage:(UIImage *)dividerImage forLeftSegmentState:(UIControlState)leftState rightSegmentState:(UIControlState)rightState;

- (UIImage *)scopeBarButtonDividerImageForLeftSegmentState:(UIControlState)leftState rightSegmentState:(UIControlState)rightState;

这一对方法用于获取和设置附加选择按钮视图中切换按钮的图案

- (void)setScopeBarButtonTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state;

- (NSDictionary *)scopeBarButtonTitleTextAttributesForState:(UIControlState)state;

这一对方法用于设置和获取切换按钮标题文字的字体属性字典

@property(nonatomic) UIOffset searchFieldBackgroundPositionAdjustment;

搜索文字在搜索框中的位置偏移

@property(nonatomic) UIOffset searchTextPositionAdjustment;

textfield在搜索框中的位置偏移

- (void)setPositionAdjustment:(UIOffset)adjustment forSearchBarIcon:(UISearchBarIcon)icon;

- (UIOffset)positionAdjustmentForSearchBarIcon:(UISearchBarIcon)icon;

设置搜索栏中图片的位置偏移,图片的枚举如下:

typedef NS_ENUM(NSInteger, UISearchBarIcon) {UISearchBarIconSearch, //搜索图标UISearchBarIconClear, // 清除图标UISearchBarIconBookmark, // 书本图标UISearchBarIconResultsList, // 结果列表图标
};

下面是搜索框控件的一些代理方法:

- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar;

将要开始编辑时的回调,返回为NO,则不能编辑

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar;

已经开始编辑时的回调

- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar;

将要结束编辑时的回调

- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar;

已经结束编辑的回调

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText;   编辑文字改变的回调

- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text ;

编辑文字改变前的回调,返回NO则不能加入新的编辑文字

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar;

搜索按钮点击的回调

- (void)searchBarBookmarkButtonClicked:(UISearchBar *)searchBar;

书本按钮点击的回调

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar;

取消按钮点击的回调

- (void)searchBarResultsListButtonClicked:(UISearchBar *)searchBar;

搜索结果按钮点击的回调

- (void)searchBar:(UISearchBar *)searchBar selectedScopeButtonIndexDidChange:(NSInteger)selectedScope;

搜索栏的附加试图中切换按钮触发的回调

转载于:https://my.oschina.net/u/2607703/blog/727918

相关文章:

Linux常用性能检测命令

一、uptime Uptime命令的显示结果包括服务器已经运行了多长时间,有多少登陆用户和对服务器性能的总体评估(load average)。load average值分别记录了上个1分钟,5分钟和15分钟间隔的负载情况,load average不是一个百…

怎样把DataGrid存放在ViewState中的无用数据卡掉

作者:无间道的博客http://www.cnblogs.com/wangsaokui/articles/10031.html 怎样把 DataGrid 存放在 ViewState 中的无用数据(有时候确实如此)卡掉,大家知道,一般而言DataGrid在ViewState中会存放表格中的所有数据,这样会导致View…

深度学习先驱 Yann LeCun 被骂到封推!AI 偏见真该甩锅数据集?

整理 | 夕颜出品 | CSDN(ID:CSDNnews)最近,人工智能领域又发生了一次热热闹闹的争论,随后演变成一场偏离轨道的争吵,目前以 Yann 道歉封推暂告一段落......争论来龙去脉这次争论的主角是图灵奖得主、人工智能标杆性人物…

JS加强学习-DOM学习01

JavaScript由三个部分组成:ECMAScript、DOM、BOM。前面已经学习了ECMAScript中的基础内容,现在可以开始学习DOM部分了,在DOM中更多的是实际效果的展现。 1. DOM定义 DOM:document object model 文档对象模型 它是将整个页面文档封…

android 游戏引擎libgdx demo cuboc分析

开始学习android游戏开发也有一段时间了,挑选libgdx这个游戏引擎来进行学习和开发。Libgdx是一款支持2D与3D游戏开发的游戏类库,并且它是夸平台的。例如你可以在windos下开发,同样的代码也可以运行在android上。 刚开始学习这个游戏引擎可能会感觉无从下手&#…

倒计时1天 | 张钹院士领衔,AI开发者大会20大论坛全攻略!

2020年7月3—4日,由 CSDN 主办的第三届 AI 开发者大会(AI ProCon 2020)(大会官网:https://aiprocon.csdn.net/)将以线上直播的形式与大家相见。本次大会历时2天,一次性设立6大主题、20大精彩分论…

在页面中导入文件

1. <% Response.WriteFile ("Yourfile.inc") %> 2. Server.Execute("Yourfile.inc")

How Tomcat works — 四、tomcat启动(3)

上一节说到StandardService负责启动其子组件&#xff1a;container和connector&#xff0c;不过注意&#xff0c;是有先后顺序的&#xff0c;先启动container&#xff0c;再启动connector&#xff0c;这一节先来看看container。 目录 Pipeline和VavleStandardEngine类和Standar…

DataList分页

<% Page Language"C#" %> <% Import Namespace"System.Data" %> <% Import Namespace"System.Data.OleDb" %> <Script Language"C#" Runat"Server"> /* Create By 飞刀 http://www.aspcn.com 20…

【中文】Joomla1.7扩展介绍之Googlemaps Plugin

Googlemaps Plugin 插件分类&#xff1a;Maps 支持版本&#xff1a;1.5 /1.6 /1.7 关注程度&#xff1a;【最流行的】 所属类型&#xff1a;插件、多语种 可以在 Joomla 1.5.x (native), 1.6.x and 1.7.x. 的内容条目、模块或者组件中显示一个&#xff08;或多个&#xff09;…

一文读懂:GoogleNet的Inception从v1到v4的演变

来源 | 机器学习炼丹术GoogleNet和VGG是ImageNet挑战赛中的第一名和第二名。共同特点就是两个网络的层次都更深了。但是&#xff1a;VGG继承了LeNet和AlexNet的一些框架结构而GoogleNet则做了更大胆的尝试&#xff0c;虽然深度有22层&#xff0c;但是参数却是Alexnet的1/12.而V…

几何画板画一个五边形内部的方法

五边形属于多边形里面比较简单的&#xff0c;就是在四边形的基础上增加一条边而已&#xff0c;五边形在平面几何学上指所有由五条边围衬成及有五个角的多边形。完美五边形和正五边形都是五边形的一种特殊类型。几何画板作为专业绘图工具&#xff0c;可以轻松就画出五边形&#…

GDAL Data Model(转)

即描述一个GDAL data store能够包含的信息的类型。 Dataset 一个dataset &#xff08;即一个GDALDataset 对象&#xff09;是一组相关的raster bands和一些属于它们的公共信息的集合。尤其是dataset有一个适用于它所有bands的关于raster size的概念&#xff0c;它是用pixels 和…

实战:人脸识别实战项目(源码共享)

首先我想问个问题&#xff1a;现在什么工程师最值钱&#xff1f;毫无疑问&#xff0c;我想超 90% 的都会说&#xff1a;人工智能工程师。也难怪&#xff0c;随着近几年人工智能的发展&#xff0c;已经逐渐渗透到了各个领域&#xff0c;比如&#xff1a;医疗、教育、机械自动化、…

Calendar如何只显示“一、二、三...日”,不显示“星期”

秋水无恨 asp.net Calendar DayNameFormat Globalization DayNames http://www.csdn.net/develop/Read_Article.asp?id15715 Calendar的DayNameFormat&#xff0c;如FirstLetter &#xff0c;FirstTwoLetters &#xff0c;Full &#xff0c;Short 但是争对英文而言的&#xf…

gulp插件之browser-sync安装报错

2019独角兽企业重金招聘Python工程师标准>>> 最近做前端开发&#xff0c;一直用gulp来写一些自动化脚本。之前用的npm的镜像为edunpm&#xff0c;很简单&#xff0c;因为这个镜像非常的快。 但是不知道为什么browser-sync插件总是下载不成功。。。 后来用nrm切换到t…

TensorFlow、PyTorch之后,“国产”AI框架还有没有机会?

出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;众所周知&#xff0c;在机器学习框架领域&#xff0c;PyTorch、TensorFlow已分别成为目前学界和业界使用最广泛的两大实力玩家&#xff0c;而紧随其后的Keras、MXNet等框架也由于其自身的独特性受到开发者的喜爱。 202…

结构成员访问的三种方法

结构成员访问的三种方法 #include "stdio.h"#include "string.h"#include <stdlib.h>main (){struct student{int num;char * name;int score;}stu;struct student *p&stu;stu.num1;(*p).name"tom";p->score78;printf("%d\n&q…

数据库字段命名及设计规范

1.设计原则 1) 标准化和规范化数据的标准化有助于消除数据库中的数据冗余。标准化有好几种形式&#xff0c;但 Third Normal Form&#xff08;3NF&#xff09;通常被认为在性能、扩展性和数据完整性方面达到了最好平衡。简单来说&#xff0c;遵守3NF 标准的数据库的表设计原则是…

更改管理GPO的域控制器

1.GPO先被存储到扮演PDC模拟器操作主机角色的域控制器&#xff0c;然后再由它将其复制到其他域控制器&#xff0c;域成员计算机再通过域控制器来应用GPO.2.可通过DC选项与组策略两种方式来将管理GPO的域控制器从PDC模拟器操作主机更改为其他域控制器。转载于:https://blog.51ct…

怎样使元素可编辑

作者&#xff1a;http://lucky.myrice.comE-mail:amxh21cn.com 在IE5.5中&#xff0c;可以设定元素的编辑属性。语法如下&#xff1a; object.contentEditable [ sEditable]; 其中的sEditable为下列三个之一&#xff1a; ◇inherit ◇false ◇true <script lang…

知乎多场景内容匹配方案荣获CSDN AI优秀案例奖

7月3日&#xff0c;由CSDN主办的2020 AI开发者大会拉开帷幕&#xff0c;以直播形式进行吸引了上万名技术从业者参与。大会颁发了2020 AI企业及技术应用系列奖项&#xff0c;其中知乎凭借“多场景内容匹配方案”荣获“AI优秀案例奖”。 过去一年&#xff0c;人工智能技术研发和…

批量创建用户和设置密码

(1) 首先创建用户名文件和密码文件 # touch user_name passwd active:/srv # cat passwd win00:123456 win01:123456 active:/srv # cat user_name win00:x:520:520::/home/win00:/bin/bash win01:x:521:521::/home/win01:/bin/bash (2) 然后执行命令导入用户名和密码 a…

Eclipse 小插件

http://www.junginger.biz/eclipse/

肝了三天,万字长文教你玩转 tcpdump,从此抓包不用愁

图源 | 视觉中国来源|Python编程时光&#xff08;ID: Cool-Python&#xff09;今天要给大家介绍的一个 Unix 下的一个 网络数据采集分析工具 -- Tcpdump&#xff0c;也就是我们常说的抓包工具。与它功能类似的工具有 wireshark &#xff0c;不同的是&#xff0c;wireshark 有图…

【中文】Joomla1.7扩展介绍之Fabrik (强大的表单处理能力)

Fabrik 插件分类&#xff1a; Contacts & Feedback > Forms 支持版本&#xff1a;1.5 /1.7 关注程度&#xff1a;【最流行的】 所属类型&#xff1a;组件、模块、插件、多语言 Fabrik 2.1.1 is a security fix, please update immediately Fabrik 2.1.1是一个安全…

CPU的序列号

可以取CPU的序列号。 string cpuInfo "";//cpu序列号 ManagementClass cimobject new ManagementClass("Win32_Processor"); ManagementObjectCollection moc cimobject.GetInstances(); foreach(ManagementObject mo in moc) { cpuInfo mo.Properties…

Sqli-labs less 9

Less-9 本关我们从标题就可以看到 《基于时间-单引号》&#xff0c;所以很明显的这关要我们利用延时注入进行&#xff0c;同时id参数进行的是 的处理。这里我们大致的将延时注入的方法演示一次。 这里用sleep()函数。 这里因为我们利用的是时间的延迟&#xff0c;贴图就没有意…

用ASP.NET上传图片并生成带版权信息的缩略图

作者&#xff1a;活靶子 出处&#xff1a;AspxBoy.Com <% Page Language"C#" ResponseEncoding"gb2312" %><% import Namespace"System" %><% import Namespace"System.IO" %><% import Namespace"Sys…

服务器ping你可以ping通,你ping服务器ping不同的解决方案!!

这几天让公司的服务器弄的蛋疼啊&#xff01;&#xff01;三天两头的出问题&#xff0c;主管脸色不大好看&#xff0c;我这里也郁闷的要死。所以发誓一定要把好安全关&#xff01;&#xff01; 今天在自己的虚拟机上边装了一个winserver2003标准版&#xff0c;搭建好环境之后发…