zoukankan      html  css  js  c++  java
  • IOS:设置全屏背景图的两种方式,把导航栏也包括进去

     

    有时候碰到要求设置背景图,设置背景 图的区域包括导航栏navigationbar,总结了两种方法

    第一种,切换View

    首先介绍两个方法

    viewA bringSubviewToFront :viewB //将视图B放在视图A的上面

    viewA sendSubviewToBack :   viewB //将视图B放在A的下面

    那么开始设置全屏背景图,

     [self.navigationController.view addSubview:_imageView];

    首先添加imageview,大小是和view.bounds一致的,加到navigation的view上面

     [self.view bringSubviewToFront:self.navigationController.view];

    然后把navigationController.view放在最上面。

    这时候,添加其它的控件,比如添加label,都是要加到navigationcontroller.view上

    [self.navigationController.view addSubview:label];

    最后离开这个界面的时候,在diddisappear或者willdisappear里,需要把视图重新切换下,而且在navigationController.view添加的控件去除,例如上面我们的背景图,label。在willdisappear里好点,感官上更快点。记住利用开头的方法切换视图,把添加在navigationController.view上的控件全部去除

    - (void)viewWillDisappear:(BOOL)animated
    {
        [super viewWillDisappear:animated];
    //     self.navigationController.navigationBar.hidden=NO;
        [self.view sendSubviewToBack:self.navigationController.view];
          [_imageView removeFromSuperview];
    }

    下面是第二种方法

    背景图imageview加在view上,view将要出来时把导航栏隐藏,写在viewwillappear或者viewdidappear里

    这个时候添加控件都是正常加在self.view上。

    然后离开view的方法里,设置导航栏隐藏为NO,重新展示出来,不然退回到上一个view,导航栏是隐藏的。

    如果有需要在这个页面上也展现导航栏,可以加个button,label,看上去也是差不多的。

  • 相关阅读:
    关于通胀,交易手续费和加密货币的货币政策
    私有链和联盟链的机会与挑战
    耶鲁大学公开课:博弈论第九节(笔记)
    区块链匿名技术
    区块链对比数据库
    硬盘 分区 格式化 和挂载
    Nginx实战系列之功能篇----后端节点健康检查
    Nginx实战系列之功能篇----后端节点健康检查
    Nginx实战系列之功能篇----后端节点健康检查
    Nginx实战系列之功能篇----后端节点健康检查
  • 原文地址:https://www.cnblogs.com/kc1995/p/14238336.html
Copyright © 2011-2022 走看看