有时候在自定义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的按钮设置的更多相关文章

  1. iOS导航栏NavigationBar的颜色,按钮和标题以及字体颜色

    首先,层级关系: leftBarButtonItem.rightBarButtonItem.title都是加在UINavigationItem上的,UINavigationItem再加在Navigat ...

  2. iOS 设置导航栏之二(设置导航栏的颜色、文字的颜色、左边按钮的文字及颜色)

                      #import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicati ...

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

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

  4. OC导航栏自定义返回按钮

    [iOS]让我们一次性解决导航栏的所有问题 在默认情况下,导航栏返回按钮长这个样子   导航栏默认返回按钮 导航栏左上角的返回按钮,其文本默认为上一个ViewController的标题,如果上一个Vi ...

  5. Android 修改底部导航栏navigationbar的颜色

    Android 修改底部导航栏navigationbar的颜色 getWindow().setNavigationBarColor(Color.BLUE); //写法一 getWindow().set ...

  6. 小程序开发-页面导航栏navigation-bar组件

    导航栏navigation-bar 页面导航条配置节点,用于指定导航栏的一些属性.只能是 page-meta 组件内的第一个节点,需要配合它一同使用. 通过这个节点可以获得类似于调用 wx.setNa ...

  7. ios 实现自定义状态栏StatusBar 和 导航栏navigationBar 的状态和颜色

    很多app中可以看到不同与导航栏的状态栏的颜色,他妈的真绕嘴. 一.更改状态栏颜色 (StatusBar) 就是比如导航栏是红色的状态栏是绿色的. 要实现这样的效果其实很简单,就是添加一个背景view ...

  8. Android 检查设备是否存在 导航栏 NavigationBar

    尊重原创.尊重作者,转载请标明出处: http://blog.csdn.net/lnb333666/article/details/41821149 目前也没有可靠的方法来检查设备上是否有导航栏.可以 ...

  9. Ecshop导航栏标题栏的伪静态设置

    当Ecshop的伪静设置成功之后,左侧的分类标签,包括具体的产品页面都可以顺利的打开伪静态页面,但是点击导航栏,或者标题栏的时候,却还是之前的数据库标签页的方式,这是怎么一回事呢? 这是由于,Ecsh ...

随机推荐

  1. qt 使用qtxlsx 读写excel

    https://github.com/dbzhang800/QtXlsxWriter 下载qtxlsx地址 QtXlsx is a library that can read and write Ex ...

  2. JsonCpp操作数组对象

    JsonCpp操作数组对象 概述 ​ Json格式数据中,除了简单的String类型和一些非String类型,也有像各种高级语言中的数组类型一般的数组对象,且Json数组在实际开发中使用频率也比较高, ...

  3. angularJS directive中的controller和link function辨析

    在angularJS中,你有一系列的view,负责将数据渲染给用户:你有一些controller,负责管理$scope(view model)并且暴露相关behavior(通过$scope定义)给到v ...

  4. windows7 端口查看以及杀死进程释放端口

    1.调出命令窗口:开始---->运行---->cmd,或者是window+R组合键 2.输入命令:netstat -ano,列出所有端口的情况.在列表中我们观察被占用的端口,比如是4300 ...

  5. Bash命令行 bash &> >& Bash One-Liners Explained

    Bash One-Liners Explained, Part I: Working with files https://catonmat.net/bash-one-liners-explained ...

  6. 安装python File "/usr/bin/pip", line 11, in <module> sys.exit(main()) File "/usr/lib/python3.4/site-packages/pip/__init__.py", line 215, in main locale.setlocale(locale.LC_ALL, '') File "/u

      $ uname -a Linux debian 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u6 (2015-11-09) x86_64 GNU ...

  7. 分享上传图片shell的绕过过滤的几种方法

    一般网站图片上传功能都对文件进行过滤,防止webshell写入.但不同的程序对过滤也不一样,如何突破过滤继续上传? 本文总结了七种方法,可以突破! 1.文件头+GIF89a法.(php)//这个很好理 ...

  8. 零售企业ERP系统慢

    数据库优化案例 https://www.cnblogs.com/double-K/p/9210982.html 写在前面 记得在自己学习数据库知识的时候特别喜欢看案例,因为优化的手段是容易掌握的,但是 ...

  9. D3——根据数据画图

    为DOM元素添加class .attr("class", "bar") //为元素添加class属性,<div class="bar" ...

  10. Json 和 Jsonlib 的使用

    什么是 Json JSON(JvaScript Object Notation)(官网网站:http://www.json.org/)是 一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解 ...