调整导航条上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];  

相关文章推荐

iPhone开发--隐藏navigationItem的左侧返回按钮

因为项目的需要,隐藏navigationControll左侧的回退按钮,于是写了如下代码: self.navigationItem.leftBarButtonItem = nil; 发现不起作用...

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

我们发现,在设置navigationItem的leftBarButtonItem或rightBarButtonItem时,用CustomView初始化UIBarButtonItem,不论怎么设置Cus...

导航条变透明,并随着屏幕上划渐渐变非透明

有时候APP为追求一种视觉效果上的通透性,除返回按钮,会将导航条透明化,如图所示: 我现在用到的办法,将导航条的背景图设置一张透明的图,然后去掉导航条下方黑线的方法是从网上找的 // 是否改为透明 ...

javascript原生移动云编程14 - 如何隐藏和定制屏幕上部的导航条

用javascript在码实的云平台上,可以在云里编写原生的移动应用。每个
  • mash5
  • mash5
  • 2014-09-12 15:58
  • 1030

iOS导航BarButtonItem文字或者图片与屏幕边界的间隔调整方法

在设置navigationItem的leftBarButtonItem或rightBarButtonItem时, 用CustomView初始化UIBarButtonItem,不论怎么设置Custom...

iOS导航BarButtonItem文字或者图片与屏幕边界的间隔调整方法

先谢谢标哥啦 http://blog.csdn.net/woaifen3344/article/details/24793087 在设置navigationItem的leftBarButto...

Android自定义控件实现导航条IndicatorView

先上效果图 这个控件其实算是比较轻量级的,相信不少小伙伴都能做出来。因为项目中遇到了一些特殊的定制要求,所以就自己写了一个,这里放出来。 首先来分析下这个控件的功能: 能够响应左右滑动,并...

Bootstrap CSS——导航条

http://v3.bootcss.com/components/#navbar mark

导航条的使用 UINavigationBar

导航条继承与UIView,且通常只是作为多个UINavigationItem的容器,而且他以Stack的形式来管理多个UINavigationItem的控件,这意味着导航条上每次只能看到一个UINav...

各种一级导航条

导航条 /*全局属性*/ *{ margin: 0; padding: 0; font-size: 14px; font-weight: bold; }
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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