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

该博客介绍了如何通过设置导航栏背景图片和阴影图片为透明来实现iOS应用中导航栏的透明效果,从而达到沉浸式的用户体验。在`viewWillAppear`方法中设置导航栏透明,并在`viewWillDisappear`中恢复,确保只影响当前页面。代码示例详细展示了实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

94999df345621e0e7a74edb7b73f27a2.png

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

1,实现原理

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

bdcbe21e8fbb3aadf4edd09ce3164e4d.png

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

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

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

8bf0775adc12e1f0ac89b340e8918162.png

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

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)运行效果如下:

86ddbb39129d363e4d6aeb071d47ceaf.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值