自己定义导航栏:

//  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 自己定义导航栏和切割线的更多相关文章

  1. iOS系统中导航栏的转场解决方案与最佳实践

    背景 目前,开源社区和业界内已经存在一些 iOS 导航栏转场的解决方案,但对于历史包袱沉重的美团 App 而言,这些解决方案并不完美.有的方案不能满足复杂的页面跳转场景,有的方案迁移成本较大,为此我们 ...

  2. 【转】iOS中设置导航栏标题的字体颜色和大小

    原文网址:http://www.360doc.com/content/15/0417/11/20919452_463847404.shtml iOS中设置导航栏标题的字体颜色和大小,有需要的朋友可以参 ...

  3. iOS中设置导航栏标题的字体颜色和大小

    iOS中设置导航栏标题的字体颜色和大小,有需要的朋友可以参考下. 在平时开发项目的时候,难免会遇到修改导航栏字体大小和颜色的需求,一般使用自定义视图的方法,其实还存在一种方法. 方法一:(自定义视图的 ...

  4. iOS学习——更改导航栏的返回按钮的标题与颜色

    转载自:修改navigationController返回按钮颜色和文字 今天在做项目时遇到这个问题,试了很多方法都失败了.最后终于找到正确的方案了,在这里分享给大家. 引言 在iOS开发过程中,Nav ...

  5. iOS:自定义导航栏,随着tableView滚动显示和隐藏

    自定义导航栏,随着tableView滚动显示和隐藏 一.介绍 自定义导航栏是APP中很常用的一个功能,通过自定义可以灵活的实现动画隐藏和显示效果.虽然处理系统的导航栏也可以实现,但是这个是有弊端的,因 ...

  6. 解决ios7.0 以后自己定义导航栏左边button靠右的问题

    1.自己定义button //左button UIButton *leftBtn = [[UIButton , , , )]; [leftBtn addTarget:self action:@sele ...

  7. iOS 动态修改导航栏颜色 UINavigationBar

    示例 所谓动态修改  意思是 在当前页面滚动的过程中 亦或 是在 触发返回事件\进入一个新的页面  导航栏的动态变化 由于系统级别的navBar 高度集成  很多自己想实现的功能 很不好弄 如果是通过 ...

  8. iOS 系统根据导航栏和状态栏自动修改布局

    问题 条件:1.有一个全屏大小的带导航的controller 2.隐藏导航栏,最顶上还会留出状态栏的位置,而不是全屏显示 解决方法 self.automaticallyAdjustsScrollVie ...

  9. iOS 滑动隐藏导航栏-三种方式

    /** 1隐藏导航栏-简单- */    self.navigationController.hidesBarsOnSwipe = YES; /** 2隐藏导航栏-不随tableView滑动消失效果 ...

随机推荐

  1. 安装oracle11g未找到文件WFMLRSVCApp.ear文件

    win7_64位系统,安装oracle11gR2时,报错提示: 未找到文件...WFMLRSVCApp.ear文件 解决方法如下: 将下载的两个压缩包解压至同一目录(合并)再安装即可解决此类问题.

  2. openssl 证书请求和自签名命令req详解

    1.密钥.证书请求.证书概要说明 在证书申请签发过程中,客户端涉及到密钥.证书请求.证书这几个概念,初学者可能会搞不清楚三者的关系,网上有的根据后缀名来区分三者,更让人一头雾水.我们以申请证书的流程说 ...

  3. Code First 数据注释--DatabaseGenerated

    EF中可以使用DatabaseGenerated设置数据库字段的属性,它有三个枚举值:Computed.None.Identity Computed 表示这一列是计算所得 None 不做处理 Iden ...

  4. Web API零碎知识

    查看EF生成的sql的方法 1.通过在context中设置可以追踪EF[版本必须是6.0或以上]中生成的sql public BookServiceContext() : base("nam ...

  5. WPF XAML之bing使用StringFormat(转)

    释义 BindingBase.StringFormat 属性 获取或设置一个字符串,该字符串指定如果绑定值显示为字符串,应如何设置该绑定的格式.        命名空间: System.Windows ...

  6. CaseFile

    出处 http://tools.kali.org/information-gathering/casefile CaseFile is the little brother to Maltego. I ...

  7. Windows命令行(DOS命令)教程-3(转载)http://arch.pconline.com.cn//pcedu/rookie/basic/10111/15325_2.html

    五.常用命令 DOS命令总共大约有一百个(包括文本编辑.查杀病毒.配置文件.批处理等),我们这里详细介绍二十个常用的DOS命令. 先介绍一下通配符的概念. 通配符*和? *表示一个字符串 ?只代表一个 ...

  8. 关于发布DIPS的MVC项目的IIS 7.0环境配置的方法

    本人技术笨拙,今天在发布DIPS的MVC4.0项目,并部署到IIS上,遇到各种问题.在查询相关资料后,最终得以解决,所以想把这个过程记录下来. 注:DIPS为一种非关系型数据库 首先,需要安装和注册D ...

  9. SMBUS(IIC)总线

    1.SPI和IIC一般都作为板上通信,UART.SMBUS和USB一般都作为板间通信. 其中SMBUS是参考IIC制定出来的眼生病,两者很像. 2.SMBUS的I/O接口是由两条线组成的双向串行总线. ...

  10. 奇怪的JS正则表达式问题

    同一个正则表达式,为什么在JS里,用 var reg = new RegExp("..."); 定义,验证就各种失败,用 var reg=/.../; 定义,验证就对了...