iOS|iOS 导航栏透明,变色动画
文章是两年前写的,一直没更新过,似乎已经不能用了,没想还有很多朋友看到了,所以找时间修改了一下。
-
UIBarMetricsCompact
改为UIBarMetricsDefault
。 - 当时写文章时还没有 iPhoneX,所以没考虑状态栏的高度,直接使用了 20。
文章图片
知乎日报 透明 只需设置NavigationBar的背景图片为一张空图片即可
[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
NavigationBar下边有一个
ShadowImage
,也可以通过设置空的UIImage设置透明。[self.navigationController.navigationBar setShadowImage:[UIImage new]];
变色动画 在NavigationBar下插入一个view,执行动画改变这个view的透明度即可。
CGRect statusBarFrame = [UIApplication sharedApplication].statusBarFrame;
CGRect frame = self.navigationController.navigationBar.frame;
alphaView = [[UIView alloc] initWithFrame:CGRectMake(0, -statusBarFrame.size.height, frame.size.width, frame.size.height + statusBarFrame.size.height)];
alphaView.backgroundColor = [UIColor blueColor];
alphaView.userInteractionEnabled = NO;
[self.navigationController.navigationBar insertSubview: alphaView atIndex:0];
【iOS|iOS 导航栏透明,变色动画】就这么简单!
推荐阅读
- 2020-04-07vue中Axios的封装和API接口的管理
- iOS中的Block
- 记录iOS生成分享图片的一些问题,根据UIView生成固定尺寸的分享图片
- IDEA|IDEA 创建工程
- 2019-08-29|2019-08-29 iOS13适配那点事
- Hacking|Hacking with iOS: SwiftUI Edition - SnowSeeker 项目(一)
- iOS面试题--基础
- Android超简单实现沉浸式状态栏
- www和https://又被Chrome地址栏隐藏了
- 接口|axios接口报错-参数类型错误解决