首页 > 代码库 > iOS7 UI兼容 导航栏按钮边距
iOS7 UI兼容 导航栏按钮边距
iOS7之前的UI为:
而在iOS7中,由于设计方面的原因,使得UI变为:
修改的方法重写UINavigationItem的setLeftBarButtonItem和setRightBarButtonItem方法,使之与之前版本兼容;
代码如下:
@interface UINavigationItem (margin) @end
@implementation UINavigationItem (margin) #if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1 - (void)setLeftBarButtonItem:(UIBarButtonItem *)_leftBarButtonItem { if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) { UIBarButtonItem *negativeSeperator = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]; negativeSeperator.width = -12; if (_leftBarButtonItem) { [self setLeftBarButtonItems:@[negativeSeperator, _leftBarButtonItem]]; } else { [self setLeftBarButtonItems:@[negativeSeperator]]; } [negativeSeperator release]; } else { [self setLeftBarButtonItem:_leftBarButtonItem animated:NO]; } } - (void)setRightBarButtonItem:(UIBarButtonItem *)_rightBarButtonItem { if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) { UIBarButtonItem *negativeSeperator = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]; negativeSeperator.width = -12; if (_rightBarButtonItem) { [self setRightBarButtonItems:@[negativeSeperator, _rightBarButtonItem]]; } else { [self setRightBarButtonItems:@[negativeSeperator]]; } [negativeSeperator release]; } else { [self setRightBarButtonItem:_rightBarButtonItem animated:NO]; } } #endif @end
项目源码不做任何修改,问题解决;
添加Button:
UIBarButtonItem *leftBarItem = [[UIBarButtonItem alloc] initWithCustomView:btnBack]; self.navigationItem.leftBarButtonItem = leftBarItem; [leftBarItem release];
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。