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

  • 相关阅读:
    POI使用介绍
    Git的使用简介
    SOA架构搭建---duboo+zookeeper+SSM实现
    分布式事务介绍
    兼容安卓微信调用摄像头
    cookie
    js对手机软键盘的监听
    input 改变placeholder默认样式
    VisualVm使用JMX的方式连接远程JVM
    update批量根据条件更新
  • 原文地址:https://www.cnblogs.com/maxfong/p/3375167.html
Copyright © 2011-2022 走看看