IOS 滑动指示导航栏 渐变
关于导航栏渐变,本人在写APP的时候,发现了各路大神各现其通,其实我觉得这个是个很简单的问题,不需要搞得那么麻烦,对个项目要求整齐来说,一般会建一个工具类,自定义View,各个同事需要的时候,直接调用即可,如下代码:
-(void)craetNavBar{self.Naviews=[[NavBarViewHiddenAphle alloc]initWithFrame:CGRectMake(0, 0, ScreenWidth, Height_NavBar)];self.Naviews.alpha = 0.0;self.Naviews.delegate=self;[self.view addSubview:self.Naviews]; }
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{CGFloat minAlphaOffset = - Height_NavBar;CGFloat maxAlphaOffset = 200;CGFloat offset = scrollView.contentOffset.y;CGFloat alpha = (offset - minAlphaOffset) / (maxAlphaOffset - minAlphaOffset); // if (offset <= 0) { // self.Naviews.alpha = 0.0; // }else{ // self.Naviews.alpha = alpha; // NSLog(@"%f",alpha); // // }或者:if (offset <= 0) {self.Naviews.alpha = 0.0;}else{self.Naviews.alpha = offset/maxAlphaOffset;NSLog(@"%f",alpha);}}
第二种方式便是,运行时动态绑定
我们可以在运行时动态绑定他的背景视图,然后设置他的背景透明度,网上有一个通过类别方式动态绑定实现导航栏颜色渐变的三方框架,感兴趣的朋友可以自行去研究研究LTNavigation。
第三便是直接获取那张ImageView,然后设置他的透明度。
其实我们从结构图中可以看出来,它是NavigationBar的子视图,我们可以通过for…in循环遍历navigationBar.subviews,然后获得这个view。
- (void)viewDidAppear:(BOOL)animated {[super viewDidAppear:animated];//设置透明导航栏UIView *barImageView = self.navigationController.navigationBar.subviews.firstObject;barImageView.alpha = 0.0; }- (void)scrollViewDidScroll:(UIScrollView *)scrollView {CGFloat minAlphaOffset = - 88;CGFloat maxAlphaOffset = 200;CGFloat offset = scrollView.contentOffset.y;CGFloat alpha;if (offset <= 0) {alpha = 0.0;} else {alpha = (offset - minAlphaOffset) / (maxAlphaOffset - minAlphaOffset);}UIView *barImageView = self.navigationController.navigationBar.subviews.firstObject;barImageView.alpha = alpha; }
转载于:https://www.cnblogs.com/henusyj-1314/p/10824485.html
IOS 滑动指示导航栏 渐变相关推荐
- Android 资讯类App项目实战 第一章 滑动顶部导航栏
前言: 正在做一个资讯类app,打算一边做一边整理,供自己学习与巩固.用到的知识复杂度不高,仅适于新手.经验不多,如果写出来的代码有不好的地方欢迎讨论. 该系列的其他文章 第二章 retrofit获取 ...
- vue导航栏滑动切换居中,导航栏超出部分可以滑动,点击触发滑动对应的index,且滑动时导航栏会自动对应
效果图 模仿婚礼纪电子请帖模块 导航栏超出部分可以滑动,点击触发滑动对应的index,且滑动时导航栏会自动对应 Html部分 <template><div class=" ...
- IOS 11 适配导航栏、状态栏调整
在ios中对于导航栏和状态栏调整遇到问题的,请往下看. 如果系统添加导航栏和状态栏满足不了需求,可以尝试自定义制作满足自己需要的,以下提供方法和属性,让你自定义制作. 注意:状态栏 20像素 ...
- iOS系统中导航栏的转场解决方案与最佳实践
背景 目前,开源社区和业界内已经存在一些 iOS 导航栏转场的解决方案,但对于历史包袱沉重的美团 App 而言,这些解决方案并不完美.有的方案不能满足复杂的页面跳转场景,有的方案迁移成本较大,为此我们 ...
- iOS开发 导航栏渐变 图片下拉放大 导航栏移动 仿QQ 微博 知乎导航栏
开发中,我们时常会遇到导航栏颜色渐变,导航栏移动等功能;只需要复制以下系统和自定义导航栏代码到你新建的文件中,然后仿照试图控制器所举的例子使用即可,简单易用,别忘记在单例里面实现以下方法用以设置导航栏 ...
- 0918 iOS10兼容/iOS系统过高或过低配置包/混合引擎的在线视频连麦互动直播/源码管理工具/Xcode8插件升级/导航栏渐变
1 兼容iOS 10 资料整理笔记 http://www.jianshu.com/p/42e506998082 iOS developerDiskImage 这是由于真机系统过高或者过低,Xcode中 ...
- 【仿去哪儿】滑动隐藏导航栏
仿照去哪儿,隐藏导航栏(其实是设置为透明背景):向下滑动到时,当顶部图片看不见时,显示导航栏,源代码下载,效果如下: 主要思想:就是监听UITableView的滑动事件,当UITableView滑动一 ...
- iOS - 解决设置导航栏按钮图片变色的问题
问题描述 今天在利用以下代码给导航栏按钮设置图片时,发现原本是黑色的切图显示成了蓝色. UIButton *editButton = [UIButton buttonWithType:UIButton ...
- ios状态栏,导航栏,工具栏,tab栏的位置,附图
在iOS应用程序开发时,UIKit 框架提供了大量的UI元素共开发者使用.但开发者设计应用程序的用户界面时,一定要记得用户对于系统内置的那一套应用程序已经非常熟悉,所以开发者一定要正确的使用这些UI元 ...
最新文章
- SQLite命令行程序说明
- javascript引擎V8精要(2)
- Linux定期执行xshell脚本(入门)
- 3001基于哈夫曼树的数据压缩算法(附思路及注释)
- 高晓松卸任北京阿里巴巴音乐科技有限公司董事长
- oracle 模式_oracle专用模式修改为共享模式
- LAMP架构(八)限定某个目录禁止解析、 限制user_agent、php相关配置
- 10.15 sigstjmp以及siglongjmp函数
- Open Inventor学习资源
- switchhost提示没有切换权
- PS-elevenday-仿制图章工具组
- for循环 批处理 查找文件 详细信息 文件名
- 错误:java.lang.IllegalArgumentException: Service not registered
- 谷歌大中华区总裁李开复离职
- 蛋壳梦破:CEO被限制消费,资金链碎了一地
- ADS129X芯片中文资料(二)——模拟功能部分介绍
- 欧拉(Euler)定理
- 基于QT实现的简单版控制台植物大战僵尸
- [蓝桥杯]圆周率(Python)
- 普通中继模型-吞吐量