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,看上去也是差不多的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端