TextField作为搜索框的使用

在iOS开发中我们经常会使用到搜索框,但是有的时候系统自带的搜索框不足以满足我吗想要的功能,这个时候我们就可以使用自定义的搜索框实现想要的功能。

今天就简单的介绍一下怎么去使用UITextField实现一个搜索框,当然如果你有更好的方法也可以分享出来,大家相互学习。

一:直接使用

 UITextField *text = [[UITextField alloc] init];
     text.frame = CGRectMake(, , , );
     text.background = [UIImage resizeImage:@"searchbar_textfield_background"];
     //文字垂直居中
     text.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
     //搜索图标
     UIImageView *view = [[UIImageView alloc] init];
     view.image = [UIImage resizeImage:@"searchbar_textfield_search_icon"];
     view.frame = CGRectMake(, , , );
     //左边搜索图标的模式
     view.contentMode = UIViewContentModeCenter;
     text.leftView = view;
     //左边搜索图标总是显示
     text.leftViewMode = UITextFieldViewModeAlways;
     //右边删除所有图标
     text.clearButtonMode = UITextFieldViewModeAlways;

     self.navigationItem.titleView = text;

二:封装

  //初始化
         /**
          *  使用TextField实现搜索框功能封装
          */
         //设置字体大小
         self.font = [UIFont systemFontOfSize:];
         //设置提示文字
         self.placeholder = @"请输入搜索条件";
         //设置文本框的背景图片(使用分类实现拉伸效果)
         self.background = [UIImage resizeImage:@"searchbar_textfield_background"];
         //文字垂直居中
         self.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
         //搜索图标
         UIImageView *view = [[UIImageView alloc] init];
         //设置图片控制器的的图片
         view.image = [UIImage resizeImage:@"searchbar_textfield_search_icon"];
         //设置图片的frame
         view.width = ;
         view.height = ;
         //左边搜索图标的模式
         view.contentMode = UIViewContentModeCenter;
         self.leftView = view;
         //左边搜索图标总是显示
         self.leftViewMode = UITextFieldViewModeAlways;
         //右边删除所有图标
         self.clearButtonMode = UITextFieldViewModeAlways;

/**使用一:
     *  使用封装好的SearchBar
     */

     iCocosSearchBar *searchbar = [iCocosSearchBar searchBar];
     searchbar.width = ;
     searchbar.height = ;
     self.navigationItem.titleView = searchbar;

/**使用二
     *  使用封装好的SearchBar
     */

    iCocosSearchBar *searchbar = [iCocosSearchBar searchBar];
     searchbar.width = ;
     searchbar.height = ;
     [self.view addSubview:searchbar];
 

iOS开发——UI篇OC篇&TextField作为搜索框的使用的更多相关文章

  1. iOS开发——UI精选OC篇&UIApplication,UIWindow,UIViewController,UIView(layer)简单介绍

    UIApplication,UIWindow,UIViewController,UIView(layer)简单介绍 一:UIApplication:单例(关于单例后面的文章中会详细介绍,你现在只要知道 ...

  2. iOS开发——UI高级OC篇&自定义控件之调整按钮中子控件(图片和文字)的位置

    自定义控件之调整按钮中子控件(图片和文字)的位置 其实还有一种是在storyBoard中实现的,只需要设置对应空间的左右间距: 这里实现前面两种自定义的方式 一:imageRectForContent ...

  3. iOS开发——网络实用技术OC篇&网络爬虫-使用青花瓷抓取网络数据

    网络爬虫-使用青花瓷抓取网络数据 由于最近在研究网络爬虫相关技术,刚好看到一篇的的搬了过来! 望谅解..... 写本文的契机主要是前段时间有次用青花瓷抓包有一步忘了,在网上查了半天也没找到写的完整的教 ...

  4. ios开发——实用技术篇OC篇&iOS的主要框架

    iOS的主要框架         阅读目录 Foundation框架为所有的应用程序提供基本系统服务 UIKit框架提供创建基于触摸用户界面的类 Core Data框架管着理应用程序数据模型 Core ...

  5. iOS开发——高级技术OC篇&运行时(Runtime)机制

    运行时(Runtime)机制 本文将会以笔者个人的小小研究为例总结一下关于iOS开发中运行时的使用和常用方法的介绍,关于跟多运行时相关技术请查看笔者之前写的运行时高级用法及相关语法或者查看响应官方文档 ...

  6. iOS开发——运行时OC篇&使用运行时获取系统的属性:使用自己的手势修改系统自带的手势

    使用运行时获取系统的属性:使用自己的手势修改系统自带的手势 有的时候我需要实现一个功能,但是没有想到很好的方法或者想到了方法只是那个方法实现起来太麻烦,一或者确实为了装逼,我们就会想到iOS开发中最牛 ...

  7. iOS开发——网络实用技术OC篇&网络爬虫-使用java语言抓取网络数据

    网络爬虫-使用java语言抓取网络数据 前提:熟悉java语法(能看懂就行) 准备阶段:从网页中获取html代码 实战阶段:将对应的html代码使用java语言解析出来,最后保存到plist文件 上一 ...

  8. iOS开发——新特性OC篇&IOS9 SDK新特性

    iOS9 SDK新特性 WWDC 2015苹果开发者大会是移动开发者一年一度的盛会,InfoQ中文站除了第一时间整理Keynote内容分享给大家之外,还邀请了资深的一线开发者分享他们的收获.本文为王巍 ...

  9. iOS开发——网络编程OC篇&Socket编程

    Socket编程 一.网络各个协议:TCP/IP.SOCKET.HTTP等 网络七层由下往上分别为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 其中物理层.数据链路层和网络层通常被称作 ...

  10. iOS开发——网络编程OC篇&使用WebView构建HyBird应用

    使用WebView构建HyBird应用 HyBird是一种本地技术与Web相结合,能过实现跨平台的移动应用开发,最常用的一个框架:PhoneGap 一:首先,写好html代码 <!DOCTYPE ...

随机推荐

  1. hashCode之一--两个对象值相同,有相同的hash code

    两个对象值相同(x.equals(y) == true),则一定有相同的hash code. 这是java语言的定义:  因为:Hash,一般翻译做“散列”,也有直接音译为"哈希" ...

  2. C++实现离散余弦变换(参数为Eigen矩阵)

    C++实现离散余弦变换(参数为Eigen矩阵) 问题描述 昨天写了一个参数为二维指针为参数的离散余弦变换,虽然改进了参数为二维数组时,当数组大小不确定时声明函数时带来的困难,但使用指针作为参数也存在一 ...

  3. Tkinter教程之Event篇(2)

    本文转载自:http://blog.csdn.net/jcodeer/article/details/1823548 '''Tkinter教程之Event篇(2)''''''5.测试离开(Leave) ...

  4. 多级联动导航栏(top导航)

    http://www.dynamicdrive.com/style/csslibrary/item/jquery_multi_level_css_menu_2/ This is a multi-lev ...

  5. NetAdvantage 笔记

    1.UltraControlBase Class Members 1.BeginUpdate Method Sets the IsUpdating flag to true which prevent ...

  6. linux查看端口信息以及关闭进程

     lsof -i:6633 查看端口6633的使用情况 kill  (+PID数值),结束进程

  7. Windows Server 2012 四个版本对比

    Windows Server 2012 有4种版本: Foundation, Essentials, Standard and Datacenter. 版本 Foundation Essentials ...

  8. 轻松突击ThreadLocal

    本文出自 代码大湿 代码大湿 ThreadLocal是用来保存线程的本地变量,可以保证每个线程都有一个自己的变量(包括static变量). 本文所有代码请点击我 1 看个实际场景. 我们要设计一个序列 ...

  9. JAVA NIO 类库的异步通信框架netty和mina

    Netty 和 Mina 我究竟该选择哪个? 根据我的经验,无论选择哪个,都是个正确的选择.两者各有千秋,Netty 在内存管理方面更胜一筹,综合性能也更优.但是,API 变更的管理和兼容性做的不是太 ...

  10. jQuery-validate error messages in Twitter ...

    http://www.jefclaes.be/2012/11/jquery-validate-error-messages-in.html something satisfactory. In thi ...