ios 下自定义导航栏的BarButtonItem 会产生一些偏移问题,
解决方案: 通过新建一个系统的带固定距离的Item来调节你的Item
#define IOS7_NAVI_SPACE -10 } [self.navigationItem setLeftBarButtonItems:[self getBackBarButtonitem]]; } //返回按钮 -(NSArray *)getBackBarButtonitem{ //自定义button UIButton *button=[[UIButton alloc] initWithFrame:CGRectMake(0, 0, 55, 35)]; //设置背景图片 [button setBackgroundImage:[UIImage imageNamed:@"nav_left_btn_unselected.png"] forState:UIControlStateNormal]; //设置文字 [button setTitle:@"返回" forState:UIControlStateNormal]; button.titleLabel.font=[UIFont systemFontOfSize:13]; //设置文字颜色 [button setTintColor:[UIColor whiteColor]]; //为TouchUpInside添加行为 [button addTarget:self action:@selector(backAction) forControlEvents:UIControlEventTouchUpInside]; //初始化一个BarbuttonItem UIBarButtonItem *Item=[[UIBarButtonItem alloc] initWithCustomView:button]; //在初始化一个系统的带有固定距离的占位的BarButtonItem 占位用 UIBarButtonItem *fixedSpace=[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:self action:nil]; fixedSpace.width=IOS7_NAVI_SPACE;//设置宽度
// 把带固定距离的Item放在前面,调整距离 return [[NSArray alloc] initWithObjects:fixedSpace,Item, nil]; }