[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.它们的样式基本上时差不多的,唯一的一点区别就是,工具栏一般需要自己去创建,然后添加到视图中,而导航栏和标签栏不 ...
随机推荐
- Windows下搭建Mysql集群
Mysql集群的基本架构如下: 基本原理参考:[转]MySQL Cluster (集群)基本原理 这里采用最小配置,用两台机器来分别部署一个management 节点,2个data node, 2个s ...
- sh.exe": grunt: command not found
今天在git命令行工具中使用 grunt的时候,总是提示我找不到grunt命令,如: sh.exe": grunt: command not found 但是我运行 npm install ...
- POJ2135 最小费用最大流模板题
练练最小费用最大流 此外此题也是一经典图论题 题意:找出两条从s到t的不同的路径,距离最短. 要注意:这里是无向边,要变成两条有向边 #include <cstdio> #include ...
- WEB前端开发成长指南
小 编注:相比起网页射击狮,操纵代码的前端攻城狮凭着双手在键盘巴拉巴拉敲出的字符,就能赋予二次元的静态页面生命,各种lovely 的~~fabulous的~~elegant的交互效果,那叫一个锦上添花 ...
- 深入分析 ThreadLocal 内存泄漏问题
前言 ThreadLocal 的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度.但是如果滥用ThreadLocal,就可能 ...
- php linux部署相关
http://www.itbulu.com/wdcp-php55.html http://www.wdlinux.cn/wdcp/install.html http://www.yiichina.co ...
- Squid 反向代理加速网站
本实例的域名是 wenjin.cache.ibm.com.cn,通过DNS的轮询 技术,将客户端的请求分发给其中一台 Squid 反向代理服务器处理,如果这台 Squid 缓存了用户的请求资源,则将请 ...
- 【打表】HDOJ-2089-不要62
[题目链接:HDOJ-2089] 多组测试数据,所以可以先算出符合条件的所有数保存数组中,输入时则直接遍历数组. #include<iostream> #include<cstrin ...
- 打通ssh的方法
为了实现密码免输入,可以在安全的内网环境中打通ssh.linux和cygwin均可,步骤如下: 由A机去B机.在A生成密钥:ssh-keygen -t rsa,一路回车 将A的~/.ssh/id_rs ...
- 位图引起的内存溢出OutOfMemory解决方案
一.问题描述:Android下的相机在独自使用时,拍照没有问题,通过我们的代码调用时,也正常,但是更换了不同厂商的平板,ROM由Android4.0变成了Android4.1后,拍照出现了OutOfM ...