调整导航条上leftBarButtonItem和rightBarButtonItem与屏幕边界的间距
2013-02-20 15:45
393 查看
我们发现,在设置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情况为例
方法一:
考虑到CustomView一般为UIButton,如果该按钮上面是一个图片,仅为了显示效果,我们可以通过setImage: forState:方法设置button的背景图片(注意这里不是setBackgroundImage: forState:),然后通过setImageEdgeInsets:方法设置按钮图片和按钮各个边界的距离即可。按钮为文字的情况类似,对应的方法是setTitle: forState:和setTitleEdgeInsets:
方法二:
初始化一个用于控制间距的UIBarButtonItem实例negativeSpacer,并设置negativeSpacer的width属性的值,设为-5的时候,正好可以使按钮与屏幕边界值为0,以rightBarButtonItem情况为例
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; /** * 设置frame只能控制按钮的大小 */ btn.frame= CGRectMake(0, 0, 40, 44); [btn addTarget:self action:@selector(buttonClicked) forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem *btn_right = [[UIBarButtonItem alloc] initWithCustomView:btn]; UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]; /** * width为负数时,相当于btn向右移动width数值个像素,由于按钮本身和边界间距为5pix,所以width设为-5时,间距正好调整 * 为0;width为正数时,正好相反,相当于往左移动width数值个像素 */ negativeSpacer.width = -5; self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:negativeSpacer, btn_right, nil]; [btn_right release];
相关文章推荐
- 调整导航条上leftBarButtonItem和rightBarButtonItem与屏幕边界的间距
- 调整导航条上leftBarButtonItem和rightBarButtonItem与屏幕边界的间距
- 调整导航条上leftBarButtonItem和rightBarButtonItem与屏幕边界的间距
- [置顶] 调整导航条上leftBarButtonItem和rightBarButtonItem与屏幕边界 或者与titleView 的间距
- 调整导航条上leftBarButtonItem和rightBarButtonItem与屏幕边界的间距
- 调整导航条上leftBarButtonItem和rightBarButtonItem与屏幕边界的间距
- 调整导航条上leftBarButtonItem和rightBarButtonItem与屏幕边界的间距
- 调整导航条上leftBarButtonItem和rightBarButtonItem与屏幕边界
- IOS中设置navigationItem的leftBarButtonItem或rightBarButtonItem与边界距离
- backBarButtonItem与leftBarButtonItem、rightBarButtonItem
- leftBarButtonItem设置左边距,rightBarButtonItem设置右边距
- IOS-9-UIBarButtonItem导航条-添加自定义Left或者Right按钮
- iOS7 initWithCustomView- leftBarButtonItem / rightBarButtonItem 偏移问题
- 在storyboard中添加leftBarButtonItem/RightBarButtonItem
- iOS系统导航栏设置leftBarButtonItem和rightBarButtonItem的位置
- 设置leftBarButtonItem的样式为backBarButtonItem的样式
- iOS 自定义backBarButtonItem leftBarButtonItem
- leftBarButtonItem与backBarButtonItem的区别
- Navigation左右文字间距(修改rightBarButtonItem的间距)
- 关于rightBarButtonItems多个控件之间的间距调整。