IOS7适配之:返回按钮偏移问题

来源:互联网 发布:sqlplus导出sql脚本 编辑:程序博客网 时间:2024/05/18 09:10

IOS7下用系统的UIBarButtonItem时返回按钮左边距比IOS6小,见下图:

图1:上面是IOS6,下面是IOS7


需求:

IOS6和IOS7的返回按钮要统一成IOS7样式的,即偏移量要像下面那个图那么宽,那IOS6怎么办呢?

解决方案: 

#define IOS7                 ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7)+ (UIBarButtonItem *)backItem{UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];    [button setImage:[UIImage imageNamed:STR_button_backItem]                      forState:UIControlStateNormal];    button.backgroundColor = [UIColor clearColor];    CGFloat offset = 8;    if (IOS7) {        offset = 0;    }    button.frame = CGRectMake(offset, 0, kBackButtonWidth, kBackButtonHeight);    UIView *aView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kBackButtonWidth+offset, kBackButtonHeight)];    button.tag = 147;    [aView addSubview:button];    aView.userInteractionEnabled = YES;    UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithCustomView:aView];        return  backItem;}- (void)setTarget:(id)target action:(SEL)action{    UIButton *buttom = (UIButton *)[(self.customView) viewWithTag:147];[buttom addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];}    //设置导航栏返回按钮    UIBarButtonItem *backButton = [UIBarButtonItem backItem];    [backButton setTarget:self action:@selector(backButtonItemClick)];    self.navigationItem.leftBarButtonItem = backButton;

希望对大家有帮助~!~!

0 0
原创粉丝点击