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

来源:互联网 发布:网络舆论引导 编辑:程序博客网 时间:2024/06/05 14:30

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

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

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

解决:

//  偏移20/64适配

    if (@available(iOS11.0, *)) {

        self.collectionView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;

    }


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

原来的做法和大家一样

//隐藏返回按钮的文字

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

但是iOS11失效了


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

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

[[UINavigationBarappearance] setTintColor:[UIColorwhiteColor]];   //设置返回按钮的颜色


    if (@available(iOS11.0, *)) {

        [[UIBarButtonItemappearance] setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColorclearColor]}forState:UIControlStateNormal];//将title 文字的颜色改为透明

    }else {

        //隐藏返回按钮的文字

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

    }


阅读全文
0 0
原创粉丝点击