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

  • 相关阅读:
    JVM入门(一)
    2017目标
    2016目标
    C语言--第0次作业
    Hibernate ORM框架——续第一章:对象在Hibernate中的状态
    Hibernate ORM框架——续第一章:Java增删改查与Hibernate的增删改查的对比
    Hibernate ORM框架——续第一章:Hibernate的增删改查(第一个hibernate代码的优化)
    Hibernate ORM框架——第一章:Hibernate简介与操作基础
    改善SQL语句
    SQL Server的聚集索引和非聚集索引
  • 原文地址:https://www.cnblogs.com/maxfong/p/3375167.html
Copyright © 2011-2022 走看看