zoukankan      html  css  js  c++  java
  • iOS7 UI兼容 导航栏按钮边框 UINavigationItem left and right padding

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

    博文地址:http://www.cnblogs.com/maxfong/p/3375167.html

  • 相关阅读:
    响应码异常HttpStatus not ok!statusCode:307
    SpringBoot的web项目使用JRebel启动错误
    SpringBoot启动遇到的找不到spring模块的怪事
    Redis(一)
    Redis一主二从Sentinel监控配置
    Redis命令
    IDEA
    sql server常用函数积累
    char,varchar和nvarchar有什么区别?
    SQL SERVER里的锁机制
  • 原文地址:https://www.cnblogs.com/maxfong/p/3375167.html
Copyright © 2011-2022 走看看