首页 > 学院 > 开发设计 > 正文

iOS7UI兼容导航栏按钮边距

2019-11-14 20:29:13
字体:
来源:转载
供稿:网友

转载自:http://www.VEVb.com/maxfong/p/3375167.html

iOS7之前的UI为:

而在iOS7中,由于设计方面的原因,使得UI变为:

 

修改的方法重写UINavigationItemsetLeftBarButtonItemsetRightBarButtonItem方法,使之与之前版本兼容;

代码如下:

@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];

 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表