界面的导航栏距离边界感觉有点圆,然后就找了一下怎么修改间隙文字到边界的距离,果然找到了。
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];
只需要自己修改 一下即可,不过嘛,还是得做点什么,方便嘛!
#import <UIKit/UIKit.h>
/**
* 导航item的扩展
*/
@interface UIBarButtonItem (Extension)
+ (UIBarButtonItem *)itemWithTarget:(id)target action:(SEL)action image:(UIImage *)image highImage:(UIImage *)highImage;
@end
#import "UIBarButtonItem+Extension.h"
@implementation UIBarButtonItem (Extension)
/**
* 创建一个item
*
* @param target 点击item后调用哪个对象的方法
* @param action 点击item后调用target的哪个方法
* @param image 图片
* @param highImage 高亮的图片
* @return 创建完的item
*/
+ (UIBarButtonItem *)itemWithTarget:(id)target action:(SEL)action image:(UIImage *)image highImage:(UIImage *)highImage
{
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
//设置图片
// [btn setImage:[UIImage imageNamed:image] forState:UIControlStateNormal];
// [btn setImage:[UIImage imageNamed:highImage] forState:UIControlStateHighlighted];
[btn setImage:image forState:UIControlStateNormal];
[btn setImage:highImage forState:UIControlStateHighlighted];
// 设置尺寸
btn.size = CGSizeMake(40, 40);
// btn.size = btn.currentImage.size;
return [[UIBarButtonItem alloc] initWithCustomView:btn];
}
@end