美文网首页
适配iOS11的坑

适配iOS11的坑

作者: iOS苦逼开发 | 来源:发表于2017-09-23 14:49 被阅读47次

    1、iOS11视图无法显示----添加在window上的视图无法显示
    我们一般都会用下面这种方式来让一个视图显示在最顶层:

    UIView *shareView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, screenSize.width, screenSize.height)];
    UIWindow *window = [UIApplication sharedApplication].windows.lastObject; 
    [window addSubview:shareView];
    

    但是今日发现部分用户升级iOS11之后这些视图部分加载不出来,遂去查看了一下,发现如果当前控制器不是导航器的根控制器的时候,[UIApplication sharedApplication].windows多了一个视图:

    FD4A6B30-1B49-4E23-93C9-48FE24189276.png

    而以前的情况是这样的:

    20E0C683-98D6-4B53-B0F5-193C32F6E6F2.png

    大家应该都看得出来是多了一个_UIInteractiveHighlightEffectWindow,目前还不了解多出来的这个是什么层,总之大家都可以看到,这个window的hidden为YES,userInteractionEnabled为NO,所有视图添加到这上面肯定无法显示,可以显示也无法点击,目前我这的处理方法:
    1、将视图添加到控制器的view上面,而不是window;
    2、改成下面的方法:

    UIView *shareView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, screenSize.width, screenSize.height)];
    UIWindow *window = [UIApplication sharedApplication].windows[[UIApplication sharedApplication].windows.count-2]; 
    [window addSubview:shareView];
    

    第二种方法可能不太保险,继续探索优化

    相关文章

      网友评论

          本文标题:适配iOS11的坑

          本文链接:https://www.haomeiwen.com/subject/qwecextx.html