项目适配iOS11所做的工作

1、全局设置返回按钮的图片

[[UIBarButtonItem appearance] setBackButtonBackgroundImage:[UIImage imageNamed:@"nav-ico-back-white"]
                                                      forState:UIControlStateNormal
                                                    barMetrics:UIBarMetricsDefault];

使用xcode9在iOS11上运行会出 返回标识的重合


项目适配iOS11所做的工作_第1张图片
返回‘<’重合

解决:使用系统的<

2、UISearchBar的高度修改

之前使用的searchBar高度是44 iOS11后改为56

_searchBar = [[EMSearchBar alloc] initWithFrame: CGRectMake(0, 0, self.view.frame.size.width, KSearchBarHeight)];

3、自定义导航栏按钮位置问题

使用设置站位按钮的宽度为负数达到按钮紧贴屏幕边儿的效果不能用了

UIBarButtonItem *addItem = [[UIBarButtonItem alloc] initWithCustomView:cAdd];
    UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc]
                                       initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace
                                       target:nil action:nil];
    negativeSpacer.width = -16;
    [self.navigationItem setRightBarButtonItems:@[negativeSpacer, addItem,]];

解决:10分钟适配 iOS 11 & iPhone X

4、tabbleview 内容在push 和 pop 的时候自动滚动

在push / pop 的过程中


项目适配iOS11所做的工作_第2张图片
tableview距离导航栏高度发生变化

项目适配iOS11所做的工作_第3张图片
结束

解决:

//iOS 11 滚动试图的适配
    if (@available(ios 11.0,*)) {
        UIScrollView.appearance.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
        UITableView.appearance.estimatedRowHeight = 0;
        UITableView.appearance.estimatedSectionFooterHeight = 0;
        UITableView.appearance.estimatedSectionHeaderHeight = 0;
    }

5、用到的宏定义

#define KSearchBarHeight (iOS(11)?56.f:44.f)
#define iOS(version) ([[UIDevice currentDevice].systemVersion floatValue] >= version)

6、使用XCode9 不得不升级 Charts 版本到3.0

使用Charts3.0版本有问题的伙伴,可以私信我讨论。

其他适配11 和 iphoneX文章:

  1. https://www.lee1994.com

  2. http://www.jianshu.com/p/efbc8619d56b

  3. http://www.jianshu.com/p/c355cc4b12c2?utm_campaign=maleskine&utm_content=note&utm_medium=reader_share&utm_source=weibo

  4. http://www.cocoachina.com/ios/20170915/20580.html

iOS开发交流群:479663605

你可能感兴趣的:(项目适配iOS11所做的工作)