关于导航栏渐变,本人在写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 滑动指示导航栏 渐变相关推荐

  1. Android 资讯类App项目实战 第一章 滑动顶部导航栏

    前言: 正在做一个资讯类app,打算一边做一边整理,供自己学习与巩固.用到的知识复杂度不高,仅适于新手.经验不多,如果写出来的代码有不好的地方欢迎讨论. 该系列的其他文章 第二章 retrofit获取 ...

  2. vue导航栏滑动切换居中,导航栏超出部分可以滑动,点击触发滑动对应的index,且滑动时导航栏会自动对应

    效果图 模仿婚礼纪电子请帖模块 导航栏超出部分可以滑动,点击触发滑动对应的index,且滑动时导航栏会自动对应 Html部分  <template><div class=" ...

  3. IOS 11 适配导航栏、状态栏调整

    在ios中对于导航栏和状态栏调整遇到问题的,请往下看. 如果系统添加导航栏和状态栏满足不了需求,可以尝试自定义制作满足自己需要的,以下提供方法和属性,让你自定义制作. 注意:状态栏  20像素     ...

  4. iOS系统中导航栏的转场解决方案与最佳实践

    背景 目前,开源社区和业界内已经存在一些 iOS 导航栏转场的解决方案,但对于历史包袱沉重的美团 App 而言,这些解决方案并不完美.有的方案不能满足复杂的页面跳转场景,有的方案迁移成本较大,为此我们 ...

  5. iOS开发 导航栏渐变 图片下拉放大 导航栏移动 仿QQ 微博 知乎导航栏

    开发中,我们时常会遇到导航栏颜色渐变,导航栏移动等功能;只需要复制以下系统和自定义导航栏代码到你新建的文件中,然后仿照试图控制器所举的例子使用即可,简单易用,别忘记在单例里面实现以下方法用以设置导航栏 ...

  6. 0918 iOS10兼容/iOS系统过高或过低配置包/混合引擎的在线视频连麦互动直播/源码管理工具/Xcode8插件升级/导航栏渐变

    1 兼容iOS 10 资料整理笔记 http://www.jianshu.com/p/42e506998082 iOS developerDiskImage 这是由于真机系统过高或者过低,Xcode中 ...

  7. 【仿去哪儿】滑动隐藏导航栏

    仿照去哪儿,隐藏导航栏(其实是设置为透明背景):向下滑动到时,当顶部图片看不见时,显示导航栏,源代码下载,效果如下: 主要思想:就是监听UITableView的滑动事件,当UITableView滑动一 ...

  8. iOS - 解决设置导航栏按钮图片变色的问题

    问题描述 今天在利用以下代码给导航栏按钮设置图片时,发现原本是黑色的切图显示成了蓝色. UIButton *editButton = [UIButton buttonWithType:UIButton ...

  9. ios状态栏,导航栏,工具栏,tab栏的位置,附图

    在iOS应用程序开发时,UIKit 框架提供了大量的UI元素共开发者使用.但开发者设计应用程序的用户界面时,一定要记得用户对于系统内置的那一套应用程序已经非常熟悉,所以开发者一定要正确的使用这些UI元 ...

最新文章

  1. SQLite命令行程序说明
  2. javascript引擎V8精要(2)
  3. Linux定期执行xshell脚本(入门)
  4. 3001基于哈夫曼树的数据压缩算法(附思路及注释)
  5. 高晓松卸任北京阿里巴巴音乐科技有限公司董事长
  6. oracle 模式_oracle专用模式修改为共享模式
  7. LAMP架构(八)限定某个目录禁止解析、 限制user_agent、php相关配置
  8. 10.15 sigstjmp以及siglongjmp函数
  9. Open Inventor学习资源
  10. switchhost提示没有切换权
  11. PS-elevenday-仿制图章工具组
  12. for循环 批处理 查找文件 详细信息 文件名
  13. 错误:java.lang.IllegalArgumentException: Service not registered
  14. 谷歌大中华区总裁李开复离职
  15. 蛋壳梦破:CEO被限制消费,资金链碎了一地
  16. ADS129X芯片中文资料(二)——模拟功能部分介绍
  17. 欧拉(Euler)定理
  18. 基于QT实现的简单版控制台植物大战僵尸
  19. [蓝桥杯]圆周率(Python)
  20. 普通中继模型-吞吐量

热门文章

  1. Hibernate5-命名查询
  2. Linux网络编程之广播
  3. UE把环境变量Path改了
  4. C#语法糖(Csharp Syntactic sugar)大汇总
  5. 解决mysql无法远程登陆问题
  6. eclipse中Tomcat启动了 但看不到tomcat首页
  7. 深入了解java线程池
  8. codevs 1002 搭桥
  9. [AsyncHandle]什么引发了ObjectDisposedException?
  10. 数据库迁移用到的命令