由于导航栏背景透明,那么整个视图的背景便会占据全部的可视区域,从而让用户有一种沉浸式的体验。下面通过样例演示如何实现这个效果。

1,实现原理

(1)如果想让导航栏(navigationBar)透明,只需将导航栏背景图片(backgroundImage)设置为一个空的 image即可。不过这样设置后,导航栏下方还是会有一条灰色色的分隔线。

//设置导航栏背景为空图片

self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)

(2)如果要去除这个黑边,同样将导航栏的 shadowImage设置为一个空的 image即可。

//设置导航栏阴影为空图片

self.navigationController?.navigationBar.shadowImage = UIImage()

2,完整样例

(1)我们在 viewWillAppear方法中将导航栏背景设置为透明,同时在 viewWillDisappear方法中又将其还原,这样保证导航栏透明这对当前页面有效,其他页面的导航栏不会变为透明。

import UIKit

class ViewController: UIViewController {

override func viewDidLoad() {

super.viewDidLoad()

//修改导航栏标题文字颜色

self.navigationController?.navigationBar.titleTextAttributes =

[.foregroundColor: UIColor.white]

//修改导航栏按钮颜色

self.navigationController?.navigationBar.tintColor = UIColor.white

//设置视图的背景图片(自动拉伸)

self.view.layer.contents = UIImage(named:"bg1.jpg")!.cgImage

}

//视图将要显示

override func viewWillAppear(_ animated: Bool) {

super.viewWillAppear(animated)

//设置导航栏背景透明

self.navigationController?.navigationBar.setBackgroundImage(UIImage(),

for: .default)

self.navigationController?.navigationBar.shadowImage = UIImage()

}

//视图将要消失

override func viewWillDisappear(_ animated: Bool) {

super.viewWillDisappear(animated)

//重置导航栏背景

self.navigationController?.navigationBar.setBackgroundImage(nil, for: .default)

self.navigationController?.navigationBar.shadowImage = nil

}

}

(2)运行效果如下:

html怎么让导航栏背景透明,Swift - 导航栏背景全透明效果的实现(沉浸式效果)...相关推荐

  1. android 透明栏,Android状态栏透明(沉浸式效果)

    Android状态栏透明(沉浸式效果) 默认效果 沉浸式效果 方式一 源码 1. 修改状态栏和导航栏的属性为透明 if (Build.VERSION.SDK_INT >= Build.VERSI ...

  2. android activity透明主题,Android应用的全透明效果--Activity及Dialog的全透明

    1.Activity全透明 同学给了这个有趣的代码,现在公布出来. 先在res/values下建colors.xml文件,写入:<?xmlversion ="1.0"enco ...

  3. android app实现系统导航栏设置图片起到沉浸式效果

    1:在oncreate中,调用以下代码块,注:因为继承了自己封装的BaseActivity,故写在了重写方法provideBindView()中,其实和在oncreate中一样.(代码在最下面,图为展 ...

  4. android顶部导航高度,快速实现顶端导航栏(ToolBar+TabLayout+Viewpager)

    1.前言 在Android开发前期时,实现一个业务分明的导航栏对后面各业务开发与解耦都有重要意义.现在各种厂商的导航栏样式都比较类似,Tab型的导航是当下被大家所选择的形式,今天我们就来快速搭建一个T ...

  5. Android 4.4之后状态栏和导航栏细节美化(沉浸式状态栏)

    转载请注明出处:http://blog.csdn.net/demokui/article/details/54603284 本篇文章出自:[姜奎的博客] 1. 简介 其实标题我是打算叫"抢眼 ...

  6. Win11任务栏怎么透明?Win11任务栏全透明设置教程

    Win11任务栏怎么透明?微软推出新的Win11系统已经很久了,不少用户在下载安装之后觉得任务栏颜色不好看想要设置成透明的,但是又不知道具体怎么操作,下面小编就带着大家一起学习一下任务栏设置透明的方法 ...

  7. android滑动背景变透明,Android右滑退出+沉浸式(透明)状态栏

    背景 上篇文章一个千万量级的APP使用的一些第三方库中,在说到一个使用很广泛的滑动退出库SwipeBackLayout时有提过有时间会分享自己在项目中引入这个库的时候填过的一些坑.前段时间项目加入沉浸 ...

  8. Android UI体验之全屏沉浸式透明状态栏效果

    前言: Android 4.4之后谷歌提供了沉浸式全屏体验, 在沉浸式全屏模式下, 状态栏. 虚拟按键动态隐藏, 应用可以使用完整的屏幕空间, 按照 Google 的说法, 给用户一种 身临其境 的体 ...

  9. Android实现沉浸式(透明)状态栏适配

    第一种讲解: 在Android系统4.4以前,状态栏的背景色和字体颜色都是不能改变的.但是4.4以后Google增加了改变状态栏背景透明的方法,可以通过两种方式来设置. 直接在Activity中设置W ...

最新文章

  1. 好记性不如烂笔杆-android学习笔记十四 EditText 画行,解决光标压线问题
  2. Gtk+2 Hello World:从源码到打包发布
  3. windows下磁盘IO性能数据评测
  4. 三维空间中曲线绕任意轴旋转所得的旋转曲面求法
  5. 极光推送 java api_JPush极光推送Java服务器端API
  6. 【环境搭建002】ubuntu 13 在vm 下的 NFS 搭建
  7. 3144: [Hnoi2013]切糕
  8. linux 科学绘图软件,在Linux中使用matplotlib进行科学画图
  9. 1.12 深层循环神经网络
  10. 类成员与方法访问控制从严
  11. linux每日命令(13):more命令
  12. Leetcode 142. Linked List Cycle II
  13. zbb20180613 Spring MVC实现大文件下载功能
  14. bzoj 3123 [Sdoi2013]森林
  15. VS编程,WPF中,通过C# 创建颜色选择器,颜色拾取器,调色板的一种方法
  16. X站全称是什么_科普|HDMI是什么意思?有什么用处?一文带你了解HDMI的发展史...
  17. VirtualBox虚拟机使用Vagrant连接win(甲骨文Oracle VM )
  18. 计算机excel实验总结,计算机概论excel实验报告.doc
  19. 数据挖掘#金融风控总结
  20. 怎么联系计算机管理员,自己家电脑怎么联系网络管理员啊~~!?

热门文章

  1. Unity动画控制器
  2. pbootcms标签生成器开发助手
  3. 鲸鱼算法(WOA)在matlab中的实现
  4. 在大厂,为什么做到总监以上级别的人喜欢加班?因为这个级别的快乐你想象不到…...
  5. 多目标优化算法|用于全局和工程设计优化的多目标原子轨道搜索 (MOAOS)算法(Matlab代码实现)
  6. [蓝桥杯][算法提高VIP]任意年月日历输出
  7. 抽象工厂的缺点和解决方法
  8. 自己搭建的ftp无法下载文件
  9. MWC(1) Multiwii 飞控程序初学者概要
  10. 操作系统实验:Windows进程管理