• 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

  • 相关阅读:
    火狐优化及遇到的问题
    拷贝工程,名字不改变问题
    Ajax基础实例
    Java中检测字符串的编码格式
    innerHTML和outerHTML有什么区别
    启动Tomcat出现“Bad version number in .class file (unable to load class XXX)”解决
    MyEclipse8.6安装SVN 教程 与遇到的问题
    彻底卸载JDK的-并只依赖配置环境安装JDK(不依赖注册表)-解决Error opening registry key'softwareJavasoftJava Runti问题
    数据库下的分页代码
    WSGI
  • 原文地址:https://www.cnblogs.com/maxfong/p/3375167.html
Copyright © 2020-2023  润新知