iOS11项目适配 UIScorllView下移和导航栏返回按钮偏移

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/PianZhideNanRen/article/details/78094216

相信这段时间大家都在适配iOS11,我下面就是记录一下我适配的两个问题;

关于iOS11新出的安全区域、navigation的层级改变等都不在赘述,网上一大堆,下面就看问题;

1.我的项目首页是一个全屏的collectionView,导航条是自定义view(大家懂得),滑动的时候导航条透明度改变。在iOS11上出现collectionView下移了20,把刷新控件漏出来了;这个是因为iOS11新加的安全区域特性造成的。

解决:

//  偏移20/64适配

    if (@available(iOS 11.0, *)) {

        self.collectionView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;

    }


2.导航条返回按钮下移20,这是因为iOS11导航条层级改变(导航条容易改变复杂)。我用的是系统导航按钮(可以保留系统返回动画)

原来的做法和大家一样

//隐藏返回按钮的文字

[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60) forBarMetrics:UIBarMetricsDefault];

但是iOS11失效了


我看网上大家很多都使用的分类添加自定义按钮,但是这样不仅要修改大量代码,而且没有了系统返回动画和侧滑返回,这不是我想要的

其实修改系统的更简单了,这个是临时方案,相信以后会出现更好的,感觉返回图片是白色的时候有点糊

[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];   //设置返回按钮的颜色


    if (@available(iOS 11.0, *)) {

        [[UIBarButtonItem appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor clearColor]} forState:UIControlStateNormal];//将title 文字的颜色改为透明

    }else {

        //隐藏返回按钮的文字

        [[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60) forBarMetrics:UIBarMetricsDefault];

    }


猜你喜欢

转载自blog.csdn.net/PianZhideNanRen/article/details/78094216