调整导航条上leftBarButtonItem和rightBarButtonItem与屏幕边界

转载 2015年11月18日 16:48:53

我们发现,在设置navigationItem的leftBarButtonItem或rightBarButtonItem时,用CustomView初始化UIBarButtonItem,不论怎么设置CustomView的frame,添加到导航条上之后总是和屏幕边界有一定的间距(5pix),如何自由调整这个间距呢?

        方法一:

        考虑到CustomView一般为UIButton,如果该按钮上面是一个图片,仅为了显示效果,我们可以通过setImage: forState:方法设置button的背景图片(注意这里不是setBackgroundImage: forState:),然后通过setImageEdgeInsets:方法设置按钮图片和按钮各个边界的距离即可。按钮为文字的情况类似,对应的方法是setTitle: forState:和setTitleEdgeInsets:

        方法二:

        初始化一个用于控制间距的UIBarButtonItem实例negativeSpacer,并设置negativeSpacer的width属性的值,设为-5的时候,正好可以使按钮与屏幕边界值为0,以rightBarButtonItem情况为例 

[plain] view plaincopy
  1. UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];  
  2. /**  
  3.  *  设置frame只能控制按钮的大小  
  4.  */  
  5. btn.frame= CGRectMake(0, 0, 40, 44);  
  6. [btn addTarget:self action:@selector(buttonClicked) forControlEvents:UIControlEventTouchUpInside];  
  7. UIBarButtonItem *btn_right = [[UIBarButtonItem alloc] initWithCustomView:btn];  
  8. UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc]   
  9.                                    initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace   
  10.                                    target:nil action:nil];  
  11. /**  
  12.  *  width为负数时,相当于btn向右移动width数值个像素,由于按钮本身和边界间距为5pix,所以width设为-5时,间距正好调整  
  13.  *  为0;width为正数时,正好相反,相当于往左移动width数值个像素  
  14.  */  
  15. negativeSpacer.width = -5;   
  16. self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:negativeSpacer, btn_right, nil];  
  17. [btn_right release];  

NavigationItem.leftBarButtonItem 返回事件捕获

NavigationItem.leftBarButtonItem 返回事件捕获    这个事件的捕获,在网上找了好久也没找到合适的方法,最后想了一些替代方法,供有需要的朋友借鉴。   1....
  • liuyinghui523
  • liuyinghui523
  • 2015年08月31日 11:00
  • 2167

IOS中设置navigationItem的leftBarButtonItem或rightBarButtonItem与边界距离

我们发现,在设置navigationItem的leftBarButtonItem或rightBarButtonItem时,用CustomView初始化UIBarButtonItem,不论怎么设置Cus...
  • jiadabin
  • jiadabin
  • 2016年07月18日 16:49
  • 4597

iOS-自定义Navigation左侧的leftBarButtonItem

ios开发中经常会用到navigation导航,当导航栏不是想要的样式时,就需要我们自定义了,前面我已经讲到了如何自定义button(附上链接),下面是,如何把自定义的按钮,放到导航的左侧,即left...
  • csdnAaron
  • csdnAaron
  • 2015年06月11日 11:07
  • 3202

Swift 设置navigation左右两侧按钮

我们以设置右侧按钮为例,左侧方法类似 方法一,直接自定义文字 let item=UIBarButtonItem(title: "分享", style: UIBarButtonIte...
  • lwjok2007
  • lwjok2007
  • 2015年09月11日 17:48
  • 15442

调整导航条上leftBarButtonItem和rightBarButtonItem与屏幕边界

我们发现,在设置navigationItem的leftBarButtonItem或rightBarButtonItem时,用CustomView初始化UIBarButtonItem,不论怎么设置Cus...
  • kingcodexl
  • kingcodexl
  • 2015年11月18日 16:48
  • 947

更改系统默认导航栏的返回按钮

前言 今天我们来重点讨论导航栏返回的问题,包括各种问题的解决方案。 系统默认导航栏的返回按钮和返回方式 在默认情况下,导航栏返回按钮长这个样子 导航栏默认返回按钮 ...
  • guobing19871024
  • guobing19871024
  • 2016年10月25日 14:08
  • 985

调整导航条上leftBarButtonItem和rightBarButtonItem与屏幕边界 或者与titleView 的间距

与屏幕边界 或者与titleView 的间距 只要分别调整rightBarButtonItems 数组元素的顺序。主要利用UIBarButtonItem 的UIBarButtonSystemItem...
  • u011018979
  • u011018979
  • 2017年08月29日 11:26
  • 441

navigationItem的leftBarButtonItem和rightBarButtonItem隐藏

因为项目的需要,隐藏navigationControll上面的按钮,于是写了如下代码: [cpp] view plaincopy self.navigati...
  • kuaileyizhan1314
  • kuaileyizhan1314
  • 2013年12月26日 14:32
  • 9777

调整导航条上leftBarButtonItem和rightBarButtonItem与屏幕边界的间距

我们发现,在设置navigationItem的leftBarButtonItem或rightBarButtonItem时,用CustomView初始化UIBarButtonItem,不论怎么设置Cus...
  • chaoyuan899
  • chaoyuan899
  • 2014年08月14日 21:26
  • 5045

设置导航栏的左侧、中间、右侧内容

1、假设导航栏的中间显示的是图片// 设置导航栏标题 self.navigationItem.titleView = [[UIImageView alloc] initWithImage:[U...
  • cyuyanenen
  • cyuyanenen
  • 2016年09月23日 16:54
  • 1519
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:调整导航条上leftBarButtonItem和rightBarButtonItem与屏幕边界
举报原因:
原因补充:

(最多只允许输入30个字)