IOS7 自定义UIBarButtonItem 的一些问题

时间:2023-12-12 21:32:56

ios 下自定义导航栏的BarButtonItem 会产生一些偏移问题,

解决方案: 通过新建一个系统的带固定距离的Item来调节你的Item

#define   IOS7_NAVI_SPACE   -10
}
    [self.navigationItem setLeftBarButtonItems:[self getBackBarButtonitem]];
} //返回按钮
-(NSArray *)getBackBarButtonitem{
    //自定义button
    UIButton *button=[[UIButton alloc] initWithFrame:CGRectMake(, , , )];
    //设置背景图片
    [button setBackgroundImage:[UIImage imageNamed:@"nav_left_btn_unselected.png"] forState:UIControlStateNormal];
    //设置文字
    [button setTitle:@"返回" forState:UIControlStateNormal];
    button.titleLabel.font=[UIFont systemFontOfSize:];
    //设置文字颜色
    [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];
}