我们在开发iOS7的应用的时候会遇到这么一个问题,自定义导航条的时候,返回按钮太靠中间了。和iOS6的位置不一样啊!我们可以这样解决这个问题:

#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 = -7;

        if (_leftBarButtonItem){
            [self setLeftBarButtonItems:@[negativeSeperator, _leftBarButtonItem]];
        }
        else{

            [self setLeftBarButtonItems:@[negativeSeperator]];

        }
    }
    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 = -7;

        if (_rightBarButtonItem){
            [self setRightBarButtonItems:@[negativeSeperator, _rightBarButtonItem]];
        }else{
            [self setRightBarButtonItems:@[negativeSeperator]];
        }
    }else{
        [self setRightBarButtonItem:_rightBarButtonItem animated:NO];
    }
}
#endif

使用以上代码扩展UINavigationItem类别,通过调整negativeSeperator.width的数值就可以控制返回按钮的左右位置了。

打赏作者
如果这篇文章帮助了你,可以请作者喝罐可乐,以此激励作者创作更多!

您的支持将鼓励我继续创作!

[微信] 扫描二维码打赏

[支付宝] 扫描二维码打赏