关于导航栏渐变效果总结
首先我们知道navigationBar的结构图NavigationBar 结构图,所以我们要做到这种效果,最终是要改变图片的alpha。基于此有如下3种方法。
1.设置渐变图片
根据上面设置为透明的方法,我们最直接能想到的还是setBackgroundImage,根据滑动距离去设置图片的alpha。
可以根据图片alpha和color封装一个图像类别如下:
+ (UIImage*)imageWithColor:(UIColor*)color{CGRectrect =CGRectMake(0.0f,0.0f,1.0f,1.0f);
UIGraphicsBeginImageContext(rect.size);
CGContextRefcontext =UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [colorCGColor]);
CGContextFillRect(context, rect);
UIImage*image =UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
returnimage;
}
2.根据运行时的特性,动态绑定可以参考动态绑定demo可参考GitHub - ltebean/LTNavigationBar: UINavigationBar Category which allows you to change its appearance dynamically
3.直接获取NavigationBar子视图ImageView,然后设置他的透明度.然后用一个全局的imageView引用他。从结构图中可以看出来,他是NavigationBar的子视图,我们可以通过for...in循环遍历navigationBar.subviews,然后获得这个view.或者直接直接获取UIImage = self.navigationController.navigationBar.subviews.firstObject;
【关于导航栏渐变效果总结】第一次写博文,若有不妥之处,望赐教!
推荐阅读
- 冷丫专栏(帮我量一下体温好吗())
- 物联网及AI前沿技术专栏|基于机器学习的技术术语识别研究综述
- vue顶部菜单栏实现小结
- 关于vue-admin-element中的动态加载路由
- 关于王先森的N件事
- 关于将本地|关于将本地 SAP UI5 应用配置到本地 Fiori Launchpad 的技术实现深入讲解试读版
- Swift笔记:关于init的总结
- java|关于微信小程序与Java后台交互数据中中文乱码问题的讨论
- 【docker专栏8】使用IDEA远程管理docker镜像及容器服务
- 远程互动会议平台是什么()