自定义导航栏按钮

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"侧栏" style:UIBarButtonItemStylePlain target:self action:@selector(clickleftButton:)];

如果我们使用这行代码来定义按钮,无论左边右边,图片还是文字,他都会把字体或图片颜色变成默认的蓝色,然而并不是我们的需求,

所以我们这样

    //导航栏 double按钮

    //图片
    UIImage *doubleButtonImage = [UIImage imageNamed:@"tx"];

    //按钮
    UIButton *doubleButton = [UIButton buttonWithType:UIButtonTypeCustom];
    doubleButton.bounds = CGRectMake(0, 0, 30, 30);
    [doubleButton setImage:doubleButtonImage forState:UIControlStateNormal];

    //按钮的点击事件
    [doubleButton addTarget:self action:@selector(doubleButtonClick) forControlEvents:UIControlEventTouchUpInside];

    //导航栏按钮
    UIBarButtonItem *doubleButtonItem = [[UIBarButtonItem alloc]initWithCustomView:doubleButton];

    //添加到导航栏左边
    self.navigationItem.leftBarButtonItem = doubleButtonItem;

自定义的按钮作为导航栏的按钮,重点是红色标记处,我们需要把按钮的类型设为custom而不是system,这样我们的按钮图片颜色就是本来的颜色了,如果是文字,颜色也可以自己设置下就搞定了,而不会是默认的蓝色了~

时间: 2024-12-28 21:32:53

自定义导航栏按钮的相关文章

实际iOS编程中遇到的自定义导航栏按钮,导致手势返回失效的解决方法

1\在实际编程过程中往往需要自定义导航栏上面的按钮,也就用: - (instancetype)initWithCustomView:(UIView *)customView; 但用了这个方法后可能会导致iOS7,8的手势返回失效,解决方法就是在自定义的导航栏的viewDidLoad方法中添加如下代码 注意:只有用系统的导航栏,或者继承于系统的导航栏才可以用Push方法,并且自带返回手势. - (void)viewDidLoad { [super viewDidLoad]; __weak type

自定义导航栏按钮 baseViewController中写!

// 自定义导航栏"返回按钮" - (void)initNaviBackBtn {     UIButton *backBtn = [UIButtonbuttonWithType:UIButtonTypeCustom];     backBtn.frame = CGRectMake(0, 0, 50, 22);     [backBtn setImage:[UIImageimageNamed:@"backBtn"] forState:UIControlStateNo

自定义导航栏标题按钮

自定义标题栏按钮 @implementation SNTitleButton - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { //图片居中 self.imageView.contentMode = UIViewContentModeCenter; //字体居右 self.titleLabel.textAlignment = NSTextAlignmentRight; //字体

自定义导航栏返回按钮文字

自定义导航栏返回按钮文字 by 伍雪颖 navigationItem.backBarButtonItem = UIBarButtonItem(title: "返回", style: UIBarButtonItemStyle.Plain, target: nil, action: nil)

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

解决 ios7.0 以后自定义导航栏左边按钮靠右的问题 www.111cn.net 编辑:edit02_lz 来源:转载 最近开发了一个ios的app,在ios7.0+出现自定义导航栏左边按钮出现靠右的情况,后来自己解决了,解决办法如下 1.自定义按钮  代码如下 复制代码 //左按钮UIButton *leftBtn = [[UIButton alloc]initWithFrame:RectWithPara(-20, 0, 44, 44)];[leftBtn addTarget:self ac

IOS 自定义导航栏标题和返回按钮标题

IOS中自定义导航栏标题: UILabel *titleText = [[UILabel alloc] initWithFrame: CGRectMake(160, 0, 120, 50)]; titleText.backgroundColor = [UIColor clearColor]; titleText.textColor=[UIColor whiteColor]; [titleText setFont:[UIFont systemFontOfSize:17.0]]; [titleTex

React Native自定义导航栏

之前我们学习了可触摸组件和页面导航的使用的使用: 从零学React Native之09可触摸组件 - 从零学React Native之03页面导航 - 经过之前的学习, 我们可以完成一个自定义导航栏了, 效果如下: 我们需要创建一个 NaviBar.js 用来显示顶部的导航栏, 还需要四个界面(Page1.js,Page2.js,Page3.js,Page4.js). 当然还需要修改index.android.js或者index.ios.js 用来处理4个界面的切换. 导航栏NaviBar 实现

父子控制器中的自定义导航栏

提到自定义导航栏,大家首先想到的就是自己写个自定义导航控制器,然后设置自己的导航控制器的主题.再把包装着自己控制器的导航控制器的class填上自己写的自定义nav如果遇到个别控制器的导航栏想与众不同,就再写个自定义nav然后再弄个新的导航控制器包裹自己. 可是,如果一个项目中用到了 父子控制器,上面的这种做法就会没有效果.原因就是取不到导航栏. 比如我做的大概架构是一个collectionView的循环引用,让一个个tableview都是包装在我的collectionViewcell里面的,然后

iOS 自定义导航栏笔记

一.UINavigationBar的结构 导航栏几乎是每个页面都会碰到的问题,一般两种处理方式:1.隐藏掉不显示 2.自定义 1. 添加导航栏 TestViewController * mainVC = [[TestViewController alloc] init]; UINavigationController * nav = [[UINavigationController alloc] initWithRootViewController:mainVC]; self.window.ro