ios 自己定义导航栏和切割线
自己定义导航栏:
- // CustomNaviBarView.h
- #import <UIKit/UIKit.h>
- @interface CustomNaviBarView : UIView
- {
- @private
- /**
- * 左側button
- */
- UIButton* _leftButton;
- /**
- * 右側button
- */
- UIButton* _rightButton;
- /**
- * 中部标签
- */
- UILabel* _navTitle;
- }
- @property(nonatomic,strong)UIButton* leftButton;
- @property(nonatomic,strong)UIButton* rightButton;
- @property(nonatomic,strong)UILabel* navTitle;
- /**
- * 返回一个自己定义导航条
- *
- * @param controller 控制器对象
- * @param leftTitle 导航左側文本,默认:@"取消"
- * @param rightTitle 导航右側文本
- * @param centerTitle 导航中部文本
- *
- * @return 导航条对象
- */
- - (CustomNaviBarView*)initCustomNaviBarViewOnController:(UIViewController*)controller leftTitle:(NSString*)leftTitle rightTitle:(NSString*)rightTitle centerTitle:(NSString*)centerTitle;
- @end
- // CustomNaviBarView.m
- #import "CustomNaviBarView.h"
- #import "Constant.h"
- @implementation CustomNaviBarView
- @synthesize leftButton = _leftButton;
- @synthesize rightButton = _rightButton;
- @synthesize navTitle = _navTitle;
- - (CustomNaviBarView*)initCustomNaviBarViewOnController:(UIViewController*)controller leftTitle:(NSString*)leftTitle rightTitle:(NSString*)rightTitle centerTitle:(NSString*)centerTitle
- {
- //1.创建导航栏视图
- self = [super initWithFrame:CGRectMake(0, 0, WIDTH_SCREEN, 65)];
- if (self != nil)//当导航视图没有载入成功的时候推出该方法
- {
- //1.为导航视图设置背景
- self.backgroundColor = [UIColor colorWithRed:248 / 255.0 green:248 / 255.0 blue:248 / 255.0 alpha:1];
- [[controller navigationController] setNavigationBarHidden:YES animated:YES];
- //2.导航面板左边的取消按钮
- _leftButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
- if (_leftButton != nil)
- {
- _leftButton.frame = CGRectMake(15, 20, 65, 44);
- if (leftTitle != nil) {
- [_leftButton setTitle:leftTitle forState: UIControlStateNormal];
- }else
- {
- [_leftButton setTitle:POST_CANCEL_BUTTON forState: UIControlStateNormal];
- }
- [_leftButton setTitleColor:[[UIColor alloc] initWithRed:0 green:158/255.0 blue:150/255.0 alpha:1.0]forState:UIControlStateNormal];
- _leftButton.titleLabel.font = [UIFont systemFontOfSize: 16.0];
- _leftButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
- //[leftButton addTarget:self action:@selector(cancelButtonEventTouchUpInside)forControlEvents :UIControlEventTouchUpInside];
- [self addSubview:_leftButton];
- }
- //3.导航面板右边的公布按钮
- _rightButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
- if (_rightButton != nil)
- {
- [_rightButton setFrame:CGRectMake(WIDTH_SCREEN - 80, 20, 65, 44)];
- if (_rightButton != nil) {
- [_rightButton setTitle:rightTitle forState: UIControlStateNormal];
- }else
- {
- //[rightButton setTitle:POST_CANCEL_BUTTON forState: UIControlStateNormal];
- }
- [_rightButton setTitleColor:[[UIColor alloc] initWithRed:0 green:158/255.0 blue:150/255.0 alpha:1.0]forState:UIControlStateNormal];
- _rightButton.titleLabel.font = [UIFont systemFontOfSize: 16.0];
- _rightButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight;
- //[rightButton addTarget:self action:@selector(postButtonEventTouchUpInside)forControlEvents :UIControlEventTouchUpInside];
- [self addSubview:_rightButton];
- }
- //4.导航面板中部文字
- _navTitle = [[UILabel alloc] initWithFrame:CGRectMake(80, 20, WIDTH_SCREEN - 80 - 80, 44)];
- if (_navTitle != nil)
- {
- [_navTitle setTextColor:[UIColor blackColor]];
- if (centerTitle != nil)
- {
- _navTitle.text = centerTitle;
- }else
- {
- //navTitle.text = @"";
- }
- [_navTitle setTextAlignment:NSTextAlignmentCenter];
- _navTitle.font = [UIFont systemFontOfSize:18.0];
- [self addSubview:_navTitle];
- }
- //5.在导航视图底加入切割线
- UIView *navDividingLine = [[UIView alloc] init];
- if (navDividingLine != nil)
- {
- navDividingLine.frame = CGRectMake(0, 20 + 44, WIDTH_SCREEN, 1);
- navDividingLine.backgroundColor = [UIColor colorWithRed:221 / 255.0 green:221 / 255.0 blue:221 / 255.0 alpha:1];
- [self addSubview:navDividingLine];
- }
- //6.往view添加导航栏
- //[controller.view addSubview:navView];
- }
- return self;
- }
- @end
怎样使用:
- //1.创建导航
- CustomNaviBarView* customNaviBarView = [[CustomNaviBarView alloc] initCustomNaviBarViewOnController:self leftTitle: nil rightTitle:NEWADDRESS_ADD_TITLE centerTitle:NEWADDRESS_NAVIGATION_TITLE];
- if (customNaviBarView != nil)
- {
- [customNaviBarView.leftButton addTarget:self action:@selector(cancelButtonEventTouchUpInside) forControlEvents:UIControlEventTouchUpInside];
- [customNaviBarView.rightButton addTarget:self action:@selector(addButtonEventTouchUpInside) forControlEvents:UIControlEventTouchUpInside];
- [self.view addSubview:customNaviBarView];
- }
自己定义切割线:
- #import <UIKit/UIKit.h>
- @interface CustomDividingLine : UIView
- /**
- * 创建一条切割线
- *
- * @param frame 位置及大小
- * @param color 背景色,假设为空默认:#f2f2f2
- *
- * @return 新创建的切割线
- */
- - (CustomDividingLine*)initDividingLineWithFrame:(CGRect)frame color:(UIColor*)color;
- @end
- #import "CustomDividingLine.h"
- @implementation CustomDividingLine
- /**
- * 创建一条切割线
- *
- * @param frame 位置及大小
- * @param color 背景色
- *
- * @return 新创建的切割线
- */
- - (CustomDividingLine*)initDividingLineWithFrame:(CGRect)frame color:(UIColor*)color
- {
- //3.2.1切割线
- self = [super init];
- if (self != nil)
- {
- self.frame = frame;
- if (color != nil)
- {
- self.backgroundColor = color;
- }
- else
- {
- self.backgroundColor = [[UIColor alloc] initWithRed:242/255.0 green:242/255.0 blue:242/255.0 alpha:1.0];
- }
- }
- return self;
- }
- @end
怎样使用:
- //3.切割线
- CustomDividingLine* customDividingLine = [[CustomDividingLine alloc]initDividingLineWithFrame:CGRectMake(0, 65 + 100, WIDTH_SCREEN, 1) color:nil];
- if (customDividingLine != nil)
- {
- [self.view addSubview:customDividingLine];
- }
ios 自己定义导航栏和切割线的更多相关文章
- iOS系统中导航栏的转场解决方案与最佳实践
背景 目前,开源社区和业界内已经存在一些 iOS 导航栏转场的解决方案,但对于历史包袱沉重的美团 App 而言,这些解决方案并不完美.有的方案不能满足复杂的页面跳转场景,有的方案迁移成本较大,为此我们 ...
- 【转】iOS中设置导航栏标题的字体颜色和大小
原文网址:http://www.360doc.com/content/15/0417/11/20919452_463847404.shtml iOS中设置导航栏标题的字体颜色和大小,有需要的朋友可以参 ...
- iOS中设置导航栏标题的字体颜色和大小
iOS中设置导航栏标题的字体颜色和大小,有需要的朋友可以参考下. 在平时开发项目的时候,难免会遇到修改导航栏字体大小和颜色的需求,一般使用自定义视图的方法,其实还存在一种方法. 方法一:(自定义视图的 ...
- iOS学习——更改导航栏的返回按钮的标题与颜色
转载自:修改navigationController返回按钮颜色和文字 今天在做项目时遇到这个问题,试了很多方法都失败了.最后终于找到正确的方案了,在这里分享给大家. 引言 在iOS开发过程中,Nav ...
- iOS:自定义导航栏,随着tableView滚动显示和隐藏
自定义导航栏,随着tableView滚动显示和隐藏 一.介绍 自定义导航栏是APP中很常用的一个功能,通过自定义可以灵活的实现动画隐藏和显示效果.虽然处理系统的导航栏也可以实现,但是这个是有弊端的,因 ...
- 解决ios7.0 以后自己定义导航栏左边button靠右的问题
1.自己定义button //左button UIButton *leftBtn = [[UIButton , , , )]; [leftBtn addTarget:self action:@sele ...
- iOS 动态修改导航栏颜色 UINavigationBar
示例 所谓动态修改 意思是 在当前页面滚动的过程中 亦或 是在 触发返回事件\进入一个新的页面 导航栏的动态变化 由于系统级别的navBar 高度集成 很多自己想实现的功能 很不好弄 如果是通过 ...
- iOS 系统根据导航栏和状态栏自动修改布局
问题 条件:1.有一个全屏大小的带导航的controller 2.隐藏导航栏,最顶上还会留出状态栏的位置,而不是全屏显示 解决方法 self.automaticallyAdjustsScrollVie ...
- iOS 滑动隐藏导航栏-三种方式
/** 1隐藏导航栏-简单- */ self.navigationController.hidesBarsOnSwipe = YES; /** 2隐藏导航栏-不随tableView滑动消失效果 ...
随机推荐
- 学习selenium所须要具备的技术
学习selenium所须要具备的知识或技术 1.selenium进行的自己主动化測试是基于ui层面的,所以html,css,javascript基本上是不可缺少的,至于javascript,有非常多的 ...
- 开始学javascript基础
JavaScript非常值得我们学习. 1)所有主浏览器都支持JavaScript. 2) 目前,全世界大部分网页都使用JavaScript. 3) 它可以使网页呈现各种动态效果. 4)作为一个Web ...
- 未能加载文件或程序集“System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”
最近用vs2012发布程序,然后将更新后的程序文件部署到服务器上,由于服务器上本来有此系统,所以只更新了修改的文件 . 进行系统登录时提示:未能加载文件或程序集“System.Web.Extensio ...
- JS文件中加载jquery.js
原文链接:http://blog.csdn.net/whatday/article/details/39553451 最近有一个需求: 1.在一个html中只能引入一个JS文件 不能有JS代码和其他J ...
- Lucene文件扩展名
名称 文件后缀 描述 段文件(Segments File) segments.gen segments_N 存储提交点信息 锁文件(Lock File) write.lock 用来阻止多个indexW ...
- BZOJ 1003 物流运输 (动态规划 SPFA 最短路)
1003: [ZJOI2006]物流运输 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 5590 Solved: 2293 [Submit][Stat ...
- mysql 日期时间运算函数(转)
DAYOFWEEK(date) 返回日期date是星期几(1=星期天,2=星期一,……7=星期六,ODBC标准)mysql> select DAYOFWEEK('1998-02-03'); ...
- jquery uploadify插件多文件上传
1.jquery uploadify 下载:http://www.uploadify.com/ 2.安装:解压后拷贝的工程目录下面,如:WebRoot/uploaddify 3.配置项说明: uplo ...
- Python一路走来 - 模块
模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...
- Halloween party
https://www.hackerrank.com/challenges/halloween-party def main(): t = int(raw_input()) for _ in rang ...