navBar设置透明效果

微信小程序之实现页面顶部导航栏透明、隐藏效果(navigationBar)欢迎点赞收藏 我们在开发微信小程序的过程中大家都知道,导航栏的颜色可以在 app.json 中的 window 属性里面添加 navigationBarBackgroundColor 属性,但是里面的颜色只能为纯色,不能使用 rgb 颜色,或者 rgba 的色号。 需求分析 但是有时候我们想要实现这种效果,想要让顶部的导航栏透明隐藏,这个时候就需要发动我们的小脑筋想一下要如何实现了。 我们可以看一下官网是否有此类方法:Navigation 官网说:Navigation是小程序的顶部导航组件,当页面配置 navigat 阅读详情

首先我们来看下效果

1465185529377975.gif

一开始当我们什么只设置了一张图片作为它的头部视图的时候,它是这样的

1465185605545250.png

1.首当其冲的,我们先得把导航栏弄透明

那么我们首先得知道,设置navigationBar的BackgroundColor为Clear是没用的,你可以试着设置它的clear,但是没用,原因一会儿我们就知道了。

而对于把导航栏设置为透明,网上大多数的方法是:

1
2
3
[self.navigationController.navigationBar setBackgroundImage:[UIImage  new ]
forBarMetrics:UIBarMetricsDefault];
self.navigationController.navigationBar.shadowImage = [UIImage  new ];

你可以运行这两句话到你的程序,你会发现这样确实是可以的,那么我们可以从中得到几个信息:

1)我们设置的是BackgroundImage,说明也许在我们的navigationBar上有一个ImageView的子视图,而我们的看到的导航栏实际上看到的就是这个图片,因此设置它为无图片我们就可以看到透明,而设置backgroundColor却不行。

2)我们还设置了shadowImage为无图,它其实就是导航栏下面的那根细线,如果你不写第二句话你则会看到一根线。

我们来看一下navigationBar的结构图

1465185630866559.png

从图中我们可以很清楚的看到,NavigationBar他背后是有一张类型为_UINavigationBarBackground(UIImageView的子类)的视图,我们平时看到的大部分其实都是它,第二个箭头那里的ImageView就是那根细线,他是加在我们背景的ImageView上面的,我们设置BackgroundImage其实就是设置_UINavigationBarBackground的image。

运行效果如图:

1465185651352585.png

2.还得让它不仅仅是透明

这,怎么整?我们有几种方案

  • 设置渐变图片

根据上面设置为透明的方法,我们最直接能想到的还是setBackgroundImage,根据滑动距离去设置图片的alpha。是的,我们是去设置图片,而不是设置UIView,这样的话就需要你不停的去生成新图片赋给BackgroundImage,这样感觉是不是会不太好?

  • 运行时动态绑定

我们可以在运行时动态绑定他的背景视图,然后设置他的背景透明度,网上有一个通过类别方式动态绑定实现导航栏颜色渐变的三方框架,感兴趣的朋友可以自行去研究研究LTNavigation

  • 直接获取那张ImageView,然后设置他的透明度。

其实我们从结构图中可以看出来,它是NavigationBar的子视图,我们可以通过for...in循环遍历navigationBar.subviews,然后获得这个view。

当然,更简单的,它其实就在subviews的第一个,即我们可以这样:

1
barImageView = self.navigationController.navigationBar.subviews.firstObject

我们可以用一个全局的imageView引用他,以免我们每次都要写一长串。

3.其实已经可以了

我们还需要做什么?没错,最后一步,我们仅仅只需要在scrollViewDidScroll里面,根据偏移量来动态改变barImageView的背景颜色(或者透明度)就行了。

例如我们需要在-64(默认的最小偏移量)到200之间变化:

1
2
3
4
5
6
7
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
     CGFloat minAlphaOffset = - 64;
     CGFloat maxAlphaOffset = 200;
     CGFloat offset = scrollView.contentOffset.y;
     CGFloat alpha = (offset - minAlphaOffset) / (maxAlphaOffset - minAlphaOffset);
     _barImageView.alpha = alpha;
}

就这样你就可以实现我在文章一开始那个图片的效果了(其实并不是,tintColor和satusBarStyle还没变)。

Tips

1)你也可以动态的更改的状态栏和标题的颜色以和导航栏更匹配

1
2
3
4
5
6
//状态栏
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
//标题颜色
self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName : [UIColor someColor]}
//导航栏子控件颜色
self.navigationController.navigationBar.tintColor = [UIColor someColor];

2)注意释放tableView 的 delegate(不然你进进出出时候会发现哪里好像不太对)

1
2
3
4
5
6
7
8
- (void)viewWillAppear:(BOOL)animated {
     [ super  viewWillAppear:animated];
     self.tableView.delegate = self;
}
- (void)viewWillDisappear:(BOOL)animated {
     [ super  viewWillDisappear:animated];
     self.tableView.delegate = nil;
}

3)导航栏是公有的

所以你可能需要在ViewWillDisappear里面再把导航栏设置为你需要的样子

还有一件事情(This word Learn from Steve jobs)

我自己封装了一些导航栏变化效果,使用简单,欢迎大家尝试:MXNavigationBarManager

1488504-d4f949950141899b.gif

S4 Hana SD -信贷管理 - 03 自动信用控制将针对同一信用控制范围的不同的客户风险类别和信贷组执行不同的信用控制政策。对于ECC系统而言,无需单独设置检查规则,可在自动信贷控制进行设置即可,如图1-5-2。在S4 HANA版本中,自动信贷控制和检查规则是分离的。S4系统需要在定义自动信贷控制的时候,给字段“SAP信用管理”打钩,激活检查规则,然后需要单独在检查规则页签设置检查规则。接下来,我们分别介绍ECC和S4 HANA系统中两种不同配置方式.6.2SPRO。 阅读详情

相关推荐

10分钟搞定manim安装与vscode配置

manim安装与vscode配置

帅帅de三叔 3358

几句话实现导航栏透明渐变(iOS)

首先我们来看下效果 一开始当我们什么只设置了一张图片作为它的头部视图的时候,它是这样的 1.首当其冲的,我们先得把导航栏弄透明 那么我们首先得知道,设置navigationBar的BackgroundColor为Clear是没用的,你可以试着设置它的clear,但是没用,原因一会儿我们就知道了。 而对于把导航栏设置透明,网上大多数的方法是:

ziyikongfu的专栏 625

ios-导航栏由透明渐变颜色(仿京东).zip

导航栏由透明渐变颜色,当刷新页面时导航栏消失。头图为不失真,为截图展示。

uview u-navbar透明背景色

重点 : bgColor="rgba(0,0,0,0)" 直接将bgColor 设置为rgba(0,0,0,0) 即可。

taomouren的博客 1030

uni-app 导航栏透明设置

uni-app 导航 透明 背景图

m0_46653120的博客 1万+

uniapp navbar栏 页面滑动 背景颜色从透明到白色

【代码】uniapp navbar栏 页面滑动 背景颜色从透明到白色。

weixin_50236740的博客 1125

Ionic3学习笔记(八)使iOS端、Android端 Navbar 透明

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34126215的博客 81

uniapp使用Uview的Navbar自定义微信小程序顶部导航栏,滚动渐变透明效果;看完不会我下跪

使用Navar自定义微信小程序顶部导航栏,实现滚动背景色渐变效果;

toHero的博客 3878

动画隐藏Navbar【上滑推动Navbar至消失,下滑至完全出现Navbar的】

NavigationViewController+TableView(或者ScrollView )情况 //首先设置navigationBar.translucent UINavigationController *navVC = [[UINavigationController alloc]initWithRootViewController:self.viewController];

wwmusic的专栏 3113

透明导航条

/** * 初始化透明Navbar */ - (void)initlizerNavBarStype { [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault]; self.navigationController.navigationBar.translucent =

WSxiaotao的专栏 625

Vuikit导航组件实战:Navbar、Tabs和Dropdown的10个技巧

Vuikit是一个响应式的Vue UI库,专为网站界面设计打造。它提供了丰富的组件,其中Navbar、Tabs和Dropdown是构建现代Web应用导航系统的核心组件。本文将分享10个实用技巧,帮助你充分利用这些组件创建出既美观又功能强大的导航体验。 ## 一、Navbar组件技巧 ### 1. 快速构建响应式导航栏 Vuikit的Navbar组件默认支持响应式设计,通过简单的配置就能在不同设

gitblog_02811的博客 390

java毛玻璃_第三十九篇、NavBar动态隐藏、设置透明、毛玻璃效果

1.动态隐藏- (void)viewDidLoad {[super viewDidLoad];if ([self respondsToSelector:@selector(automaticallyAdjustsScrollViewInsets)]) {self.automaticallyAdjustsScrollViewInsets = NO;}// 1.tableView[self.view...

weixin_33829335的博客 252

navigationBar 的渐变透明效果

我是第一张图 我是第二张图 类似这样的一个界面,要实现视图向上滑动的时候导航栏渐变为透明并且收起来的效果,其实很简单,首先这个界面是由UICollectionView来构建的,而UICollectionView其实是继承自UIScrollView,既然如此,我们可以在当前控制器中遵守UIScrollViewDelegate协议,并且实现协议方法- (void)scrollVie

u014642438的博客 545

iOS 更改导航栏背景颜色

ios7以下的版本设置导航栏背景颜色可以使用 [[UINavigationBar appearance] setTintColor:[UIColor orangeColor]]; ios7以后: [[UINavigationBar appearance] setBarTintColor:[UIColor orangeColor]]; 默认带有一定透明效果,可以使用以下方法去

Gorgeous_Xie的专栏 1953

IOS中设置UINavigationBar的各种样式(图片/透明效果/下方内容显示情况)

为了方便演示,我用storyBoard建立了一个基本的导航栏 并在代码中获得了NavgationBar ? 1 UINavigationBar *bar = self.navigationController.navigationBar; ? 1  

天道酬勤 1379

设置UINavigationBar为半透明

设置UINavigationBar为透明的就是把其风格设置成Black Translucent。 下面是图解: 右侧圆圈中为设置UINavigationBar的透明程度。

1097195326的专栏 1263

navigationBar设置透明

//设置透明方式 一、完全不用图片(iOS7之后有效)[self.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];self.navigationBar.translucent = YES; //iOS7必须显示指定,否则无透明self.navigationBar.sha...

weixin_30376323的博客 101

2025小程序获取topbar/navbar导航栏高度,自定义封装顶部导航栏组件

对于小程序,特别是微信小程序,这个自定义顶部导航栏组件的时候总是拿不准。所以要用一点小技巧去算,网上的东西很杂乱,试了好几个都是错的,最后我阴差阳错下试出来了,反正公式就是这样的还蛮准的。这是uni-app用vue语法写的几行代码,如何引用太简单我就不教了,有问题戳我就行。

m0_69660072的博客 1329

iOS 导航栏颜色渐变

#import "ViewController.h" @interface ViewController () @property (nonatomic,strong)UIImageView * back; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; /

g510941365的博客 1619

毕业设计基于CNN卷积神经网络的图像风格迁移python实现源码+文档说明

毕业设计基于CNN卷积神经网络的图像风格迁移python实现源码+文档说明,个人大四的毕业设计、经导师指导并认可通过的高分设计项目,评审分99分,代码完整确保可以运行,小白也可以亲自搞定,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。毕业设计基于CNN卷积神经网络的图像风格迁移python实现源码+文档说明毕业设计基于CNN卷积神经网络的图像风格迁移python实现源码+文档说明毕业设计基于CNN卷积神经网络的图像风格迁移python实现源码+文档说明毕业设计基于CNN卷积神经网络的图像风格迁移python实现源码+文档说明毕业设计基于CNN卷积神经网络的图像风格迁移python实现源码+文档说明毕业设计基于CNN卷积神经网络的图像风格迁移python实现源码+文档说明毕业设计基于CNN卷积神经网络的图像风格迁移python实现源码+文档说明毕业设计基于CNN卷积神经网络的图像风格迁移python实现源码+文档说明毕业设计基于CNN卷积神经网络的图像风格迁移python实现源码+文档说明

上一篇: iOS动态关联对象
下一篇: iOS数组排序简单介绍
敬业的程序猿
博客等级 码龄11年 51粉丝 77原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值