[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.它们的样式基本上时差不多的,唯一的一点区别就是,工具栏一般需要自己去创建,然后添加到视图中,而导航栏和标签栏不 ...
随机推荐
- Android Studio设置,鼠标放上去有提示
设置如下: 1. 2. 勾选就可以了
- C++ STL之vector容器的基本操作
注意事项:特别注意任何时候同时使用两个迭代器产生的将会是一个前闭后开的区间(具体见插入和删除的例子)特别注意begin()指向的是vec中的第0个元素,而end是指向最后一个元素的后面一个位置(不是最 ...
- ios程序开发杂记
ios程序开发杂记 一.程序构建 与一般的程序构建无太大区别,都是源文件编译链接这一套,通常是在mac上做交叉编译,也就是利用xcode里带的ios编译工具集去生成arm架构的ios程序(或是x86的 ...
- ACM - ICPC World Finals 2013 B Hey, Better Bettor
原题下载:http://icpc.baylor.edu/download/worldfinals/problems/icpc2013.pdf 这题真心的麻烦……程序不长但是推导过程比较复杂,不太好想 ...
- Java [leetcode 8] String to Integer (atoi)
问题描述: Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input ...
- erlang 线上分析工具集锦
1.Recon-Erlang线上系统诊断工具(引自): Erlang系统素以稳定可靠闻名,但是它也是c实现的,也是要管理比如内存,锁等等复杂的事情,也会出现Crash,而且crash的时候大部分原因是 ...
- 【C#学习笔记】鼠标控制
using System; using System.Runtime.InteropServices; using System.Windows.Forms; namespace ConsoleApp ...
- 一个响应式框架——agera
Google在上周开源了一个响应式框架——agera,相信它会慢慢地被广大程序员所熟知.我个人对这样的技术是很感兴趣的,在这之前也研究过RxJava,所以在得知Google开源了这样的框架之后第一时间 ...
- Matlab编程实例(3) 函数向左或向右平移N点 左移右移
%函数移动 close all; clear all; dir=input('请输入平移方向,“1”为向左,“2”为向右'); if dir~=1&&dir~=2;%输入控制 e ...
- 关于webpack最好的文档
这几天研究webpack打包工具,在网上搜了无数的资料,鱼龙混杂.看了几十份资料,依然没有一个可以完整的描述的. 折腾了那么久,还是放弃治疗了.回到官网,一字一句的阅读,一个小时就彻底明白了. 学习新 ...