最近需要开发搜索框,比较了以前的各个版本的搜索框,UISearchDisplayController和UISearchController的使用,以后再做记录,随着ios11的更新,一些控件发生了,改变,不过也不影响我们,这里我根据大神封装的PYSearchViewController,重新小小的封装了下,加了个自定义导航,效果图如下:

aaarticlea/png;base64,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x/YdcuLECfnyyy+lSZMmkpiUKGfOnHGESU5O1uJjeECEhgwdoj+G39EjR2XxksXywAMPGF76OzraEpY+lzLxhARIgAQCTSCsogGTzqjRo2Tjho0SGxOrjyEamG2sWLFCJkyYIEeOHJF58+a51LuiskKfY3YxZMgQl2ueTjIzM6WyolLy8vME5qfDhw9rwTh69KgjyqFDh7S5yvA4f/68/P2Vv0vHjh0NLzl79qykpafJp1M/dfgVFBZIs2bN5P7773f48YAESIAEGiKBsIoGRvJnz5wVrBPs3btXXnrpJS0CWK9o3Kix5o0RPGYdZl3r1q2lorxCduzcIV27dtWi0a5dO8nsmKnNYBCrvn366vI459WqVSt54skntOnr22+/1TOc22+/XZuijh07pgVl7569sua7Nc7ReEwCJEACDZJAWEVj7dq1sn79em2aatW6ldx3330SHx8vn376qeTm5grEIzExUbAYXVRUJNjllJqaaqohSkpKZP78+dKmTRvZvn27LF+xXI4fP67zxY4tOCyMw6U1SZObb7lZMOP46KOPJCEhQQYPHqzjbdiwQXr06CEdOnSQtm3byrhx43Qc/kcCJEACDZlAWEVjxIgRgg/MU9g9hU4Zs4qDBw/K+Anj5Z133pGHH35Y0JljsXzvvr3aZFWfBsFi9urVq+X06dMyaNAgwQwiOeniziy1fRemsl69eumkMzIy9DfWWjAbwa6qMaPH6MX5Rd8u0gvzd955p8C0BfGAiczTLq/6lJVxSIAESMCqBMIqGoCyaeMm2b5ju6SnpWsT0Icffig9e/bUu56wtpHRNEObk2bMnCFjx46tN0fMFjp37qxFCdtwsYA+depULRSJCYlaENatX6dF4Omnn3asY0AwsCUYonPq1CktOFhE3717t962i0V5iF3N3V31LigjkgAJkICFCYRdNLCojdH80KFDJSoqSnr37u1Y3MZsAGsNEydOlP3790u/fv3qjXL06NFy7OgxvXaCRAYMGKDNXdhii1lDXFyczJgxQ4uC88J3dFS0nunAD2shJcUlsnDhQrntttu0sGBRHbuxIHRYmKcjARIggYZMIOz7RDH637hxo174/vrrrwW7nGCievnll/U3dk9NmTJFP5MR6E4ZQtW/X3+d16uvvipR6t8dd1x6wBANn5ScpAUNO6tgzurXv58kJSXpdYzp06Zr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" alt="" />

大神封装的已经很好了,具体代码如下:

在大神封装的类库里面的PYSearchViewController类的第251行,添加如下代码;

 //改变导航背景颜色
[UINavigationBar appearance].barTintColor = MainColor;

和上面的那个方法,可以自己自定义导航栏的背景颜色,和字体的颜色!

分享一个自定义导航,没什么两点,只是做记录用:

.h

//
// CustomNavigationBar.h
// CBS
//
// Created by Hero11223 on 16/6/23.
// Copyright © 2016年 zyy. All rights reserved.
// #import <UIKit/UIKit.h> //这里设个枚举
typedef enum:NSUInteger
{
BtnTypeSave,//保存
BtnTypeMore,//更多
BtnTypeClist,//菜单
BtnTypeSearch,//搜索
BtnTypeAdd,//添加
BtnTypeCamera,//添加动态
BtnTypeDetail }RightBtnType; @protocol CustomNavigationBarDelegate<NSObject> @optional
-(void)leftBtnAction:(id)sender;
-(void)rightBtnAction:(id)sender; @end @interface CustomNavigationBar : UIView @property(nonatomic,strong)UILabel *titleLabel;//标题
@property(nonatomic,strong)UIButton *leftButton;//左边的按钮
@property(nonatomic,strong)UIButton *rightButton;//右边的按钮
@property(nonatomic,assign)RightBtnType rightBtnType;
@property(nonatomic,assign)BOOL isRightHidden;
@property(nonatomic,strong)UIImageView *leftImg;//左边的图片
@property(nonatomic,strong)id<CustomNavigationBarDelegate>delegate;//声明代理 //声明两个方法
-(id)initWithFrame:(CGRect)frame withTitle:(NSString *)title withLeftBtnHidden:(BOOL)l_hidden withRightBtn:(BOOL)r_hidden;
//-(id)initWithFrame:(CGRect)frame withTitle:(NSString *)title withLeftBtnHidden:(BOOL)l_hidden withRightBtn:(BOOL)r_hidden leftWidth:(CGFloat)l_width rightWidth:(CGFloat)r_width;
-(id)initWithFrametwo:(CGRect)frame withTitle:(NSString *)title withLeftBtnHidden:(BOOL)l_hidden withRightBtn:(BOOL)r_hidden;
-(void)liftBtn:(NSString *)name;
@end

.m

//
// CustomNavigationBar.m
// CBS
//
// Created by Hero11223 on 16/6/23.
// Copyright © 2016年 zyy. All rights reserved.
// //主色调
#define MainColor [UIColor colorWithRed:0.0/255.0 green:185.0/255.0 blue:239.0/255.0 alpha:1.0]
#define KscreenW [UIScreen mainScreen].bounds.size.width
#define KscreenH [UIScreen mainScreen].bounds.size.height #import "CustomNavigationBar.h" @implementation CustomNavigationBar /*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
// Drawing code
}
*/ -(id)initWithFrame:(CGRect)frame withTitle:(NSString *)title withLeftBtnHidden:(BOOL)l_hidden withRightBtn:(BOOL)r_hidden
{
self = [super initWithFrame:frame];
if (self) {
self.backgroundColor = MainColor;
//中间的标题
self.titleLabel = [[UILabel alloc]initWithFrame:CGRectMake(75.0, frame.size.height - , KscreenW-75.0*, )];
self.titleLabel.backgroundColor = [UIColor clearColor];
self.titleLabel.textColor = [UIColor whiteColor];
self.titleLabel.font = [UIFont boldSystemFontOfSize:18.0];
self.titleLabel.text = title;
self.titleLabel.textAlignment = NSTextAlignmentCenter;
[self addSubview:self.titleLabel]; //左边的按钮
_leftButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_leftButton addTarget:self action:@selector(clickLeftBtn:) forControlEvents:UIControlEventTouchUpInside];
_leftButton.frame = CGRectMake(, frame.size.height-, , );
[_leftButton setImage:[UIImage imageNamed:@"back"] forState:UIControlStateNormal];
[self addSubview:_leftButton];
_leftButton.hidden = l_hidden; //右边的按钮
_rightButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_rightButton addTarget:self action:@selector(clickRightBtn:) forControlEvents:UIControlEventTouchUpInside];
_rightButton.frame = CGRectMake(frame.size.width - , frame.size.height - , , );
[_rightButton setImage:[UIImage imageNamed:@""] forState:UIControlStateNormal];
_rightButton.hidden = r_hidden;
[self addSubview:_rightButton];
};
return self;
}
-(id)initWithFrametwo:(CGRect)frame withTitle:(NSString *)title withLeftBtnHidden:(BOOL)l_hidden withRightBtn:(BOOL)r_hidden
{
self = [super initWithFrame:frame];
if (self) {
self.backgroundColor = MainColor;
//中间的标题
self.titleLabel = [[UILabel alloc]initWithFrame:CGRectMake(75.0, frame.size.height - , KscreenW-75.0*, )];
self.titleLabel.backgroundColor = [UIColor clearColor];
self.titleLabel.textColor = [UIColor whiteColor];
self.titleLabel.font = [UIFont boldSystemFontOfSize:18.0];
self.titleLabel.text = title;
self.titleLabel.textAlignment = NSTextAlignmentCenter;
[self addSubview:self.titleLabel]; //左边的按钮
_leftButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_leftButton addTarget:self action:@selector(clickLeftBtn:) forControlEvents:UIControlEventTouchUpInside];
_leftButton.frame = CGRectMake(, frame.size.height-, , );
// [_leftButton setImage:[UIImage imageNamed:@"back"] forState:UIControlStateNormal];
[self addSubview:_leftButton];
_leftButton.hidden = l_hidden; //右边的按钮
_rightButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_rightButton addTarget:self action:@selector(clickRightBtn:) forControlEvents:UIControlEventTouchUpInside];
_rightButton.frame = CGRectMake(frame.size.width - , frame.size.height - , , );
[_rightButton setImage:[UIImage imageNamed:@""] forState:UIControlStateNormal];
_rightButton.hidden = r_hidden;
[self addSubview:_rightButton]; //左边按钮的图片
_leftImg = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"nav"]];
_leftImg.frame = CGRectMake(, frame.size.height-, , );
[self addSubview:_leftImg];
};
return self;}
-(void)setIsRightHidden:(BOOL)isRightHidden
{
if (isRightHidden == YES) {
CGRect rect = self.titleLabel.frame;
rect.size.width = KscreenW - 75.0*;
self.titleLabel.frame = rect;
}else
{
CGRect rect = self.titleLabel.frame;
rect.size.width = KscreenW - 75.0-120.0;
self.titleLabel.frame = rect;
}
}
-(void)liftBtn:(NSString *)name
{
[_leftButton setTitle:name forState:UIControlStateNormal];
[_leftButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
_leftButton.titleLabel.font = [UIFont systemFontOfSize:];
[_leftButton setImage:[UIImage imageNamed:@""] forState:UIControlStateNormal];
_leftImg.hidden = NO; }
-(void)setRightBtnType:(RightBtnType)rightBtnType
{
switch (rightBtnType) {
case BtnTypeSave://保存
{
[_rightButton setImage:[UIImage imageNamed:@""] forState:UIControlStateNormal];
[_rightButton setTitle:@"保存" forState:UIControlStateNormal];
[_rightButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[_rightButton setImageEdgeInsets:UIEdgeInsetsMake(, , , )];
_rightButton.titleLabel.font = [UIFont systemFontOfSize:17.0];
}
break;
case BtnTypeMore://更多
{
[_rightButton setImage:[UIImage imageNamed:@"more"] forState:UIControlStateNormal];
[_rightButton setTitle:@"" forState:UIControlStateNormal];
[_rightButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[_rightButton setImageEdgeInsets:UIEdgeInsetsMake(, , , )];
_rightButton.titleLabel.font = [UIFont systemFontOfSize:17.0];
}
break;
case BtnTypeClist://菜单
{
CGRect rect = _rightButton.frame;
rect.origin.x = KscreenW - 57.0;
rect.size.width = 44.0;
_rightButton.frame = rect; [_rightButton setImage:[UIImage imageNamed:@"title_bar_add"] forState:UIControlStateNormal];
[_rightButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[_rightButton setTitle:@"" forState:UIControlStateNormal];
_rightButton.titleLabel.font = [UIFont systemFontOfSize:17.0]; }
break;
case BtnTypeSearch://搜索
{
CGRect rect = _rightButton.frame;
rect.origin.x = KscreenW - 40.0;
rect.origin.y = ;
rect.size.width = ;
rect.size.height = ;
_rightButton.frame = rect; [_rightButton setImage:[UIImage imageNamed:@"search"] forState:UIControlStateNormal];
[_rightButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[_rightButton setTitle:@"" forState:UIControlStateNormal];
_rightButton.titleLabel.font = [UIFont systemFontOfSize:17.0]; }
break;
case BtnTypeAdd://添加
{
CGRect rect = _rightButton.frame;
rect.origin.x = KscreenW - 57.0;
rect.size.width = ;
rect.size.height = ;
_rightButton.frame = rect;
// _rightButton = [UIButton buttonWithType:UIButtonTypeContactAdd];
[_rightButton setImage:[UIImage imageNamed:@"加号3"] forState:UIControlStateNormal];
[_rightButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[_rightButton setTitle:@"" forState:UIControlStateNormal];
_rightButton.titleLabel.font = [UIFont systemFontOfSize:17.0]; }
break;
case BtnTypeCamera://添加动态
{
CGRect rect = _rightButton.frame;
rect.origin.x = KscreenW - 40.0;
rect.origin.y = ;
rect.size.width = ;
rect.size.height = ;
_rightButton.frame = rect;
// _rightButton = [UIButton buttonWithType:UIButtonTypeContactAdd];
[_rightButton setImage:[UIImage imageNamed:@"相机"] forState:UIControlStateNormal];
[_rightButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[_rightButton setTitle:@"" forState:UIControlStateNormal];
_rightButton.titleLabel.font = [UIFont systemFontOfSize:17.0]; }
break;
case BtnTypeDetail://添加动态
{
[_rightButton setImage:[UIImage imageNamed:@""] forState:UIControlStateNormal];
[_rightButton setTitle:@"明细" forState:UIControlStateNormal];
[_rightButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[_rightButton setImageEdgeInsets:UIEdgeInsetsMake(, , , )];
_rightButton.titleLabel.font = [UIFont systemFontOfSize:17.0];
}
break;
default:
break;
}
} -(void)clickLeftBtn:(UIButton *)sender
{
if (self.delegate && [self.delegate respondsToSelector:@selector(leftBtnAction:)]) {
[self.delegate leftBtnAction:sender];
}
} -(void)clickRightBtn:(UIButton *)sender
{
if (self.delegate && [self.delegate respondsToSelector:@selector(rightBtnAction:)]) {
[self.delegate rightBtnAction:sender];
}
} @end

具体调用:

1,声明代理

@interface ViewController ()<CustomNavigationBarDelegate>

2,引用

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.navigationController.navigationBarHidden = YES; CustomNavigationBar *nav = [[CustomNavigationBar alloc]initWithFrame:CGRectMake(, , KscreenW, ) withTitle:@"首页" withLeftBtnHidden:NO withRightBtn:NO];
nav.delegate = self;
nav.rightBtnType = BtnTypeSearch;
[self.view addSubview:nav];
}

3,然后实现两个代理方法:

-(void)leftBtnAction:(id)sender
{ } -(void)rightBtnAction:(id)sender
{ }

这样就可以了!不过就是我还没有晚上手势返回那个功能,有兴趣的可以研究下,也就一行代码的事!

下面就是搜索框的使用:

1,引入代理

@interface ViewController ()<PYSearchViewControllerDelegate>

2,调用PYSearchViewController

-(void)rightBtnAction:(id)sender
{
// 1. 创建热门搜索
NSArray *hotSeaches = @[@"Java", @"Python", @"Objective-C", @"Swift", @"C", @"C++", @"PHP", @"C#", @"Perl", @"Go", @"JavaScript", @"R", @"Ruby", @"MATLAB"];
// 2. 创建控制器
PYSearchViewController *searchViewController = [PYSearchViewController searchViewControllerWithHotSearches:hotSeaches searchBarPlaceholder:@"搜索" didSearchBlock:^(PYSearchViewController *searchViewController, UISearchBar *searchBar, NSString *searchText) {
// 开始搜索执行以下代码
// 如:跳转到指定控制器
[searchViewController.navigationController pushViewController:[[PYTempViewController alloc] init] animated:YES];
}];
// 3. 设置风格
// searchViewController.hotSearchStyle = PYHotSearchStyleNormalTag; // 热门搜索风格根据选择
searchViewController.searchHistoryStyle = PYHotSearchStyleDefault; // 搜索历史风格为default
// 5. 跳转到搜索控制器
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:searchViewController];
[self presentViewController:nav animated:NO completion:nil];
}

3,在搜索结果控制器PYTempViewController里面,会出现一个问题,从这个页面返回的时候,PYSearchViewController页面的导航栏不见了,解决方法如下:

@interface PYTempViewController ()<CustomNavigationBarDelegate>
{
CustomNavigationBar *customBar;;
} @end @implementation PYTempViewController -(void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[customBar removeFromSuperview];
self.navigationController.navigationBarHidden = NO;
} - (void)viewWillAppear:(BOOL)animated
{
self.navigationController.navigationBarHidden = YES; customBar = [[CustomNavigationBar alloc]initWithFrame:CGRectMake(, , KscreenW, ) withTitle:@"搜索结果" withLeftBtnHidden:NO withRightBtn:YES];
customBar.delegate = self;
[self.view addSubview:customBar];
}

把上述两个方法添加到控制器里面即可!

这样一个搜索框就完成了!很美观,定制型也很高,感谢大神们的无私奉献!

PYSearch传送门:https://github.com/hgl753951/PYSearch.git

UISearchBar全属性传送门:http://www.cnblogs.com/sunfuyou/p/6244378.html

Demo传送门:https://github.com/hgl753951/SearchTest.git

分享

结束!如果有不足之处,请大家一定指出,共同进步!

ios开发之--搜索框的使用(PYSearchViewController的使用)的更多相关文章

  1. iOS开发总结-搜索功能实现--使用SKTag

    TagsTableViewController.h 文件 #import <UIKit/UIKit.h> #import "personSearch.h" @inter ...

  2. 【IOS开发】搜索和排序(好友列表,通讯录的实现,searchbar)

    一.效果图: 二.概述 实现一个好友列表,可以分为男女两个选项,并且实现搜索和排序功能.我的数据是放在plist文件中. 三.代码简述 代码结构如图,首先自定义一个Cell. cell.h #impo ...

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

    http://my.oschina.net/u/2340880/blog/509756

  4. ios UISearchBar搜索框的基本使用

    摘要: 小巧简洁的原生搜索框,漂亮而易用,如果我们的应用没有特殊需求,都可以使用它. iOS中UISearchBar(搜索框)使用总结 初始化:UISearchBar继承于UIView,我们可以像创建 ...

  5. 自定义webkit搜索框样式

    好吧,这是个有点儿蛋疼的文章,每个浏览器都可以有自己的行为和表现,只是webkit在apple的带领下,在UI上走的更远了一点儿,但是却给我们带来了点儿困扰,因为很多情况下,我们希望搜索框在所有的浏览 ...

  6. iOS开发——UI篇OC篇&TextField作为搜索框的使用

    TextField作为搜索框的使用 在iOS开发中我们经常会使用到搜索框,但是有的时候系统自带的搜索框不足以满足我吗想要的功能,这个时候我们就可以使用自定义的搜索框实现想要的功能. 今天就简单的介绍一 ...

  7. 【好程序员笔记分享】——iOS开发之使用TextField作为搜索框

    -iOS培训,iOS学习-------型技术博客.期待与您交流!------------ iOS开发之使用TextField作为搜索框     今天给大家带来一个新的技巧,比如平时我们要使用代码创建一 ...

  8. iOS开发UI篇 -- UISearchBar 属性、方法详解及应用(自定义搜索框样式)

    很多APP都会涉及到搜索框,苹果也为我们提供了默认的搜索框UISearchBar.但实际项目中我们通常需要更改系统默认搜索框的样式.为了实现这一目标,我们需要先搞懂 UISearchBar 的属性及方 ...

  9. iOS之搜索框UISearchController的使用(iOS8.0以后替代UISearchBar+display)

    在iOS 8.0以上版本中, 我们可以使用UISearchController来非常方便地在UITableView中添加搜索框. 而在之前版本中, 我们还是必须使用UISearchBar + UISe ...

随机推荐

  1. 解決BufferedReader读取UTF-8文件中文乱码(转)

    读取txt文件乱码 BufferedReader read = new BufferedReader(new FileReader(new File(filename))); 解决办法: InputS ...

  2. 解决同时共用MOB公司的shareSDK和SMSSDK的冲突问题

    现在mob的SDK版本升级到3.0,跟之前的版本不兼容,尤其是在 同时使用shareSDK和SMSSDK的时候会发生冲突,报NoSuchMethodException的错误. 只需要将所有的jar包和 ...

  3. R语言使用RMySQL连接及读写Mysql数据库 测试通过

    R语言使用RMySQL连接及读写Mysql数据库 简单说下安装过程,一般不会有问题,重点是RMySQL的使用方式. 系统环境说明 Redhat系统:Linux 460-42.6.32-431.29.2 ...

  4. [Qt] 利用QtWebKit完成JavaScript访问C++对象

    一. 介绍 在浏览器扩展或者WebApp的项目经常用的脚本语言javascript有很多局限性,比如,javascript语言不能够夸窗口访问js对象,不能直接读写磁盘文件(这个也正是发明人设计的安全 ...

  5. 1<<30 hashMap 中使用位移运算的意义

    static final int MAXIMUM_CAPACITY = 1 << 30; 计算过程已1<<30为例,首先把1转为二进制数字 0000 0000 0000 000 ...

  6. savReaderWriter 模块的使用

    作用: 由于python可以辅助数据分析和数据挖掘,读取文件, 而savReaderWriter模块就是为此而设计. 官网 :http://pythonhosted.org/savReaderWrit ...

  7. 认真研究下HTML之id、name、form、submit

    #起因 同事希望在提交之后关闭父窗口,但是,始终没有提交请求发出.他的代码大概如下: // <form id='f' action=... // <button onclick='fun( ...

  8. C语言中的控制语句: 判断、环循等;

    列举这一部分的目的就是注意它的写法,尤其是 分号 : 的位置: 1. if-else if else 语句: if (表达式1) 语句1: else if (表达式2) 语句2: else 语句3: ...

  9. matlab中的常用的函数——在稀疏表示中学习到的

    1, 矩阵的逆: inv()函数: 2. 矩阵的伪逆: pinv()函数: 3. 矩阵的克罗内克尔积: kron()函数: 4. 得到一个dct变换的字典: dctmtx()函数, 它可以得到一个 n ...

  10. K-SVD算法

    它与K-mean算法原理上是类似的: K-mean 算法: (之前写过:http://www.cnblogs.com/yinheyi/p/6132362.html) 对于初始化的类别中心,可以看作初化 ...