导航栏NavigationBar的按钮设置
有时候在自定义navigationBar的左右按钮的时候,button的图片会显得很大,个人感觉原因有以下几种情况:
1、使用的是UIButton直接加在navigationBar上面
2、自定义了一个UIView,顶替系统的NavigationBar,button的frame值设置有问题。
如果是第一种情况解决方法如下:
//左边城市选择
UIButton *LButton =[UIButton buttonWithType:UIButtonTypeCustom];
LButton.frame = CGRectMake(0, 0, 40, 30);
LButton.imageEdgeInsets= UIEdgeInsetsMake(0, 20, 0, 0);
[LButton setTitle:@"长沙" forState:UIControlStateNormal];
LButton.titleLabel.font = [UIFont systemFontOfSize:15.0f];
UIBarButtonItem *leftButton=[[UIBarButtonItem alloc]initWithCustomView:LButton];
self.navigationItem.leftBarButtonItem = leftButton;
// 右边search按钮
UIButton *RButton =[UIButton buttonWithType:UIButtonTypeCustom];
RButton.frame = CGRectMake(0, 0, 40, 30);
[RButton setImage:[UIImage imageNamed:@"search"] forState:UIControlStateNormal];
UIBarButtonItem *rightButton=[[UIBarButtonItem alloc]initWithCustomView:RButton];
self.navigationItem.rightBarButtonItem = rightButton;
针对第二种情况:
如果只是想获取系统的按钮的话, 因为 navigation bar 上的按钮是 UIBarButtonItem 类的, 所以位置和大小是按内容自动生成的, 获取时也需要通过UIEvent 获取. 例如:
- (void)myButtonPressed:(UIBarButtonItem *)button event:(UIEvent *)event
{
NSLog(@"%@", [event.allTouches.anyObject view]);
}
输出:
UINavigationButton: 0x71cf400; frame = (281 7; 34 30); opaque = NO; layer = <CALayer: 0x718e950>
(这是一个位于navigation bar右侧使用了refresh系统图标的按钮)
导航栏NavigationBar的按钮设置的更多相关文章
- iOS导航栏NavigationBar的颜色,按钮和标题以及字体颜色
首先,层级关系: leftBarButtonItem.rightBarButtonItem.title都是加在UINavigationItem上的,UINavigationItem再加在Navigat ...
- iOS 设置导航栏之二(设置导航栏的颜色、文字的颜色、左边按钮的文字及颜色)
#import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicati ...
- iOS学习——更改导航栏的返回按钮的标题与颜色
转载自:修改navigationController返回按钮颜色和文字 今天在做项目时遇到这个问题,试了很多方法都失败了.最后终于找到正确的方案了,在这里分享给大家. 引言 在iOS开发过程中,Nav ...
- OC导航栏自定义返回按钮
[iOS]让我们一次性解决导航栏的所有问题 在默认情况下,导航栏返回按钮长这个样子 导航栏默认返回按钮 导航栏左上角的返回按钮,其文本默认为上一个ViewController的标题,如果上一个Vi ...
- Android 修改底部导航栏navigationbar的颜色
Android 修改底部导航栏navigationbar的颜色 getWindow().setNavigationBarColor(Color.BLUE); //写法一 getWindow().set ...
- 小程序开发-页面导航栏navigation-bar组件
导航栏navigation-bar 页面导航条配置节点,用于指定导航栏的一些属性.只能是 page-meta 组件内的第一个节点,需要配合它一同使用. 通过这个节点可以获得类似于调用 wx.setNa ...
- ios 实现自定义状态栏StatusBar 和 导航栏navigationBar 的状态和颜色
很多app中可以看到不同与导航栏的状态栏的颜色,他妈的真绕嘴. 一.更改状态栏颜色 (StatusBar) 就是比如导航栏是红色的状态栏是绿色的. 要实现这样的效果其实很简单,就是添加一个背景view ...
- Android 检查设备是否存在 导航栏 NavigationBar
尊重原创.尊重作者,转载请标明出处: http://blog.csdn.net/lnb333666/article/details/41821149 目前也没有可靠的方法来检查设备上是否有导航栏.可以 ...
- Ecshop导航栏标题栏的伪静态设置
当Ecshop的伪静设置成功之后,左侧的分类标签,包括具体的产品页面都可以顺利的打开伪静态页面,但是点击导航栏,或者标题栏的时候,却还是之前的数据库标签页的方式,这是怎么一回事呢? 这是由于,Ecsh ...
随机推荐
- Android recyclerview删除item刷新列表
删除item坑 mModels.remove(i); notifyItemRemoved(i); //必须调用这行代码 notifyItemRangeChanged(i, mModels.size() ...
- 【Udacity】朴素贝叶斯
机器学习就像酿制葡萄酒--好的葡萄(数据)+好的酿酒方法(机器学习算法) 监督分类 supervised classification Features -->Labels 保留10%的数据作为 ...
- SQA和系统测试规程
1.SQA计划 (1)目的 本计划是定义Online Judge(在线测评系统)项目的SQA组织,SQA任务和职责,项目过程中应遵循的流程.规范和约定等,指导SQA人员进行评审和审计活动,验证项目的产 ...
- python三次输入错误验证登录
# login.py# 提示用户输入用户名和密码# 验证用户名和密码# 如果v错误,则输出用户名或密码错误# 如果成功,则输出欢迎,xxxnum = 0while True: name = input ...
- ns2.35-classifier.cc
line143:recv() /* -*- Mode:C++; c-basic-offset:8; tab-width:8; indent-tabs-mode:t -*- */ /* * Copyri ...
- pt-index-usage
pt-index-usage能够从日志当中分析索引的使用情况,并且生成一个报表.下面看一下基本的语法: pt-index-usage [OPTIONS] [FIILE] 打印报告: pt-index- ...
- css z-index层重叠顺序
一.z-index语法与结构 z-index 跟具体数字 如:div{z-index:100}注意:z-index的数值不跟单位. z-index的数字越高越靠前,并且值必须为整数和正数(正数的整数) ...
- 电池容量单位 Wh和 Ah的关系
电池容量单位,应该是一个能量单位.我认为使用Wh,KWh比较科学. 功率单位是W 能量单位是WH 部分手机.充电宝使用Ah作为单位,需要通过电池输出电压进行单位转换. 转换公式 Ah * 电池输出电压 ...
- Beta版本 为什么程序员总是分不清万圣节和圣诞节?因为 Oct 31 == Dec 25。
Beta版本 软件的测试版本,经常在各类著名软件中的前期发布版本的后缀中可见,包括大名鼎鼎的windows系统,这个阶段的版本一直加入一些新的功能. 软件测试可分为alpha测试.beta测试和联合测 ...
- js获取7天之前或之后的日期
function fun_date(aa){ var date1 = new Date(), time1=date1.getFullYear()+"-"+(date1.getMon ...