zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    php 中ASCII编码的使用
    BASE64
    微信公众平台--6.JS-SDK 微信内网页开发工具包
    python3中zipfile模块的常用方法
    python3开发进阶-Django框架学习前的小项目(一个简单的学员管理系统)
    python3开发进阶-Django框架的起飞加速一(ORM)
    python3开发进阶-Django框架起飞前的准备
    python3开发进阶-Web框架的前奏
    前端基础-jQuery的最常用的的方法each、data、
    前端基础-jQuery的动画效果
  • 原文地址:https://www.cnblogs.com/henusyj-1314/p/10824485.html
Copyright © 2011-2022 走看看