您的位置:首页 > 移动开发 > IOS开发

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

2014-01-03 11:38 316 查看
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;


希望对大家有帮助~!~!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息