[iOS微博项目 - 1.2] - 导航栏搜索框
- 在“发现”页面,在顶部导航栏NavigationBar上添加一个搜索框
- 左端带有“放大镜”图标

- 使用UISearchBar: 简单易用,但是样式死板不能定制(此处UISearchBar的背景色容易和导航栏的背景色混淆),而且在iOS6和iOS7上会产生不同的样式。
- 使用UITextField创建:继承或者扩展UITextField,设置背景图和左端图标
- 创建一个继承UITextField的类,这里命名为HVWSearchBar
- 重写initWithFrame方法,用来初始化搜索框的图标、背景图片、图标和文字的对称方式、清除按钮的显示
- 在需要的控制器上实例化HVWSearchBar,赋予其位置尺寸信息,添加到NavigationItem的titleView上
//
// HVWSearchBar.m
// HVWWeibo
//
// Created by hellovoidworld on 15/2/2.
// Copyright (c) 2015年 hellovoidworld. All rights reserved.
// #import "HVWSearchBar.h" @implementation HVWSearchBar /** 使用代码创建控件的时候,调用init的时候会调用此方法 */
- (instancetype)initWithFrame:(CGRect)frame {
// 由于是重写方法,记得一定要先调用父类初始化方法
if (self = [super initWithFrame:frame]) {
// 设置内容垂直居中
[self setContentVerticalAlignment:UIControlContentVerticalAlignmentCenter]; // 设置背景图片(拉伸图片)
self.background = [UIImage resizedImage:@"searchbar_textfield_background"]; // 添加图标“放大镜“
UIImageView *searchBarIconView = [[UIImageView alloc] init];
searchBarIconView.image = [UIImage imageNamed:@"searchbar_textfield_search_icon"]; // 调整”放大镜”两边间距,view显示为正方形
searchBarIconView.width = searchBarIconView.image.size.width + ;
searchBarIconView.height = searchBarIconView.width; // 设置”放大镜“在imageView中居中
[searchBarIconView setContentMode:UIViewContentModeCenter]; // 设置textField的左部控件(”放大镜“所属的imageView)显示
[self setLeftViewMode:UITextFieldViewModeAlways]; // 设置图标到搜索栏
self.leftView = searchBarIconView; // 显示清除按钮
[self setClearButtonMode:UITextFieldViewModeAlways];
} return self;
} @end
- (void)viewDidLoad {
[super viewDidLoad]; // 添加搜索框
HVWSearchBar *searchBar = [[HVWSearchBar alloc] init];
searchBar.frame = CGRectMake(, , , );
self.navigationItem.titleView = searchBar;
}
[iOS微博项目 - 1.2] - 导航栏搜索框的更多相关文章
- [iOS微博项目 - 1.1] - 设置导航栏主题(统一样式)
A.导航栏两侧文字按钮 1.需求: 所有导航栏两侧的文字式按钮统一样式 普通样式:橙色 高亮样式:红色 不可用样式:亮灰 阴影:不使用 字体大小:15 github: https://github ...
- iOS 删除黑色边框线导航栏&删除搜索框的阴影边界线和中黑色文本输入框 - 解
删除黑色边框线导航栏 in viewDidload: [self.navigationController.navigationBar setBackgroundImage:[[UIImage all ...
- iOS开发笔记1:[转]导航栏里的"Back"按钮显示不出来
最近项目中遇到一个问题,push过去的ViewController的Nav上面没有返回按钮,遂搜索资料,找到了以下文档.经测试i,问题解决. 原文地址:http://www.cnblogs.com/s ...
- iOS 超 Easy 实现 渐变导航栏
接着上周的项目, 在上周我别出心裁的在自定义TabbarController中加入了自定义转场动画, 受到了大家广泛的喜爱, 再次表示感激, 今天我们继续实现LifestyleViewControll ...
- IOS开发之Bug--iOS7View被导航栏遮挡问题的解决
在实际开发中,遇到在UITextView的frame等于当前控制器的View的frame的情况下,然后运行的时候,发现控制器的Frame的高度y值会从导航条的位置64变化到0. 导致UITextVie ...
- [iOS微博项目 - 3.4] - 获取用户信息
github: https://github.com/hellovoidworld/HVWWeibo A.获取用户信息 1.需求 获取用户信息并储存 把用户昵称显示在“首页”界面导航栏的标题上 ...
- [iOS微博项目 - 3.1] - 发微博界面
github: https://github.com/hellovoidworld/HVWWeibo A.发微博界面:自定义UITextView 1.需求 用UITextView做一个编写微博的输 ...
- [iOS微博项目 - 3.0] - 手动刷新微博
github: https://github.com/hellovoidworld/HVWWeibo A.下拉刷新微博 1.需求 在“首页”界面,下拉到一定距离的时候刷新微博数据 刷新数据的时候使 ...
- iOS:自定义工具栏、导航栏、标签栏
工具栏为UIToolBar,导航栏UINavigationBar,标签栏UITabBar.它们的样式基本上时差不多的,唯一的一点区别就是,工具栏一般需要自己去创建,然后添加到视图中,而导航栏和标签栏不 ...
随机推荐
- [51NOD1105]第k大的数(二分答案)
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1105 先排序,二分上下界分别是最小的两个数和最大的两个数的乘积 ...
- IP地址分类及私网IP
5类IP地址: IP地址共有32位字节,其中A~C类IP地址由类标识号.网络地址和主机地址组成,A类标识最高位为0,网络地址为1字节,主机地址为3字节, B类标识最高位为10,网络地址为2字节,主机地 ...
- poj 3101 Astronomy (java 分数的最小公倍数 gcd)
题目链接 要用大数,看了别人的博客,用java写的. 题意:求n个运动周期不完全相同的天体在一条直线上的周期. 分析:两个星球周期为a,b.则相差半周的长度为a*b/(2*abs(a-b)),对于n个 ...
- Hadoop configration类分析
configration这个类是分析hadoop源代码一个很好地入口. 先从需求说起.对于一个大型的文件系统,基于配置文件可以增强灵活性.congfigration类就是为了管理配置文件的. 配置文件 ...
- web页面性能测试
做Web开发,难免要对自己开发的页面进行性能检测,自己写工具检测,工作量太大.网上有几款比较成熟的检测工具,以下就介绍一下,与大家分享. 互联网现有工具 基于网页分析工具: 1. 阿里测 ...
- Swift入门篇-swift简介
潜水博客园很多年,闲来无事,聊一下自己的经历,语文不好(如有什么错别字,请您在下评论)望您谅解,没有上过什么学的 在前期 ios入门篇 -hello Word(1) 文章中介绍我这半年准备写一些ios ...
- ASIHttpRequest编译不通过
转:http://blog.sina.com.cn/s/blog_67a5e47201014tof.html Undefined symbols for architecture i386: &q ...
- 总结mysql服务器查询慢原因与解决方法
本文针对MySQL数据库服务器查询逐渐变慢的问题, 进行分析,并提出相应的解决办法,具体的分析解决办法如下: 会经常发现开发人员查一下没用索引的语句或者没有limit n的语句,这些没语句会对数据库造 ...
- bjfu1097 图标排列
这是2011年百度之星的一道题.这题的做法就是找规律,规律找对了,代码极水.规律我一开始也没有找到,后来经人提醒,发现如下规律:对于每个开发者,其所有应用的分离度和一定是其第一个应用与最后一个应用的距 ...
- 第一个简单的android项目
开发平台:windows7+Eclipse+andriod SDK(24.0)+ADT(23.0.4).这个环境的搭建在前一篇文章(Mobile testing下的appium测试)里面已经描述了. ...