美文网首页iOS DeveloperiOS 开发
iOS弹出半透明选择窗时屏蔽导航栏

iOS弹出半透明选择窗时屏蔽导航栏

作者: 旅橙 | 来源:发表于2016-04-14 15:20 被阅读424次

    写公司项目时遇到这个问题,弹出选择项目的半透明窗口时,半透明的UIView并不能覆盖导航栏,返回按钮也不能屏蔽.本文来实现覆盖导航栏的效果.

    • chooseView是UIView

        if(chooseView){
        [chooseView removeFromSuperview];
        chooseView = nil;
        }
      //[DMDevceManager screenWidth]为取到的屏幕宽度,另一个同理
        chooseView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, [DMDevceManager screenWidth], [DMDevceManager screenHeight])];
      
        chooseView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.75];
       //以下方法来自cocoaChina的135790的回帖
        UIWindow * currentWindow = [UIApplication sharedApplication].keyWindow;
        [currentWindow addSubview:chooseView];
      
    • 解决办法就是将该View直接置于当前window.

    • 实际使用过程中发现如果在该界面登录帐号被顶掉(被强制返回登录页面),该页面因为在window上所以不会消失.只需要加一句以下代码即可

        - (void)viewWillDisappear:(BOOL)animated
        {
        [chooseView removeFromSuperview];
        }
      

    效果如图:

    科目选择_置于window
    • 记录个小方法.

    相关文章

      网友评论

        本文标题:iOS弹出半透明选择窗时屏蔽导航栏

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