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

写公司项目时遇到这个问题,弹出选择项目的半透明窗口时,半透明的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
  • 记录个小方法.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • *7月8日上午 N:Block :跟一个函数块差不多,会对里面所有的内容的引用计数+1,想要解决就用__block...
    炙冰阅读 2,532评论 1 14
  • 朝起已是谷断霜, 湖畔垂杨红芍香。 扬城琼枝花竞放, 江都广陵俱是乡。
    LinkinPark_9100阅读 129评论 0 0
  • 没有足够的物质基础,焦虑,没有一份自己喜欢的工作,焦虑,现在还是单身狗,焦虑,还有一堆工作没做,焦虑,总之生活中让...
    芳芳郁金香_1e19阅读 170评论 1 1
  • 今天是周末,室外下了很大的雨。白可欣一直挺尸床上,就算不下雨她也是不想动的。似乎每个周末都是用来补眠的,...
    猫脸小白阅读 206评论 0 0
  • 太阳底下没有新鲜事,太阳底下也没有小事。 那么我来讲一件不大小的事,事情是这样的。 寝室断网了,只好出门自习,临走...
    172cc6196a83阅读 404评论 0 0