登录 立即注册
金钱:

Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com

ios 自定义导航栏添加上滑下滑渐变

[复制链接]
来自: 阎熙丿 分类: iOS精品源码 上传时间: 2018-7-11 12:50:39
Tag:

项目介绍:

gif图片.gif

最近因为项目需要导航栏上滑下滑出现渐变的效果,话不多说,直接上代码

1首先我是自定义了一个导航栏,

@interface ZCTopNavView : UIView

2在.m文件初始化下view上面的按钮,定义了三个按钮

/* 左边Item */
@property (strong , nonatomic)UIButton *leftItemButton;
/* 右边Item */
@property (strong , nonatomic)UIButton *rightItemButton;
/* 右边第二个Item */
@property (strong , nonatomic)UIButton *rightRItemButton;

3.在.m文件里添加2个通知,用在viewcontroller里面接受通知


    //滚动到详情
    CreateWeakSelf;
    _dcObserve = [[NSNotificationCenter defaultCenter]addObserverForName:@"SHOWTOPTOOLVIEW" object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification * _Nonnull note) {
        weakSelf.topCenterTitleImage.hidden = NO;
        [weakSelf.leftItemButton setBackgroundImage:[UIImage imageNamed:@"pplm_jt"] forState:0];
        [weakSelf.rightItemButton setBackgroundImage:[UIImage imageNamed:@"xq_fx"] forState:0];
        [weakSelf.rightRItemButton setBackgroundImage:[UIImage imageNamed:@"xqsy"] forState:0];
    }];
    
    _dcObserve = [[NSNotificationCenter defaultCenter]addObserverForName:@"HIDETOPTOOLVIEW" object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification * _Nonnull note) {
        weakSelf.topCenterTitleImage.hidden = YES;
        [weakSelf.leftItemButton setBackgroundImage:[UIImage imageNamed:@"spxq_zjt"] forState:0];
        [weakSelf.rightItemButton setBackgroundImage:[UIImage imageNamed:@"spxq_fx"] forState:0];
        [weakSelf.rightRItemButton setBackgroundImage:[UIImage imageNamed:@"spxq_fh"] forState:0];
    }];

4.我在viewcontroller里面简单写了个webview 你也可以写成uitableview或者uiscrollerview。。继承下代理方法,

#pragma mark - <UIScrollViewDelegate>
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    CGFloat alpha ;
    CGFloat alp;
     //+20是状态栏的高度 因为web是全屏显示,/300是 距离,就是滑动到y轴为多少是 透明度为1
        alpha = (scrollView.contentOffset.y+20)/300;
      /*因为view上面分为2个动画效果的 
      一个当view alpha为0的时候 上面的button视图,
       随着alpha增加 而消失,当消失的快看不见的时候
      button的第二视图开始从模糊显示出来,最终都为1
*/
      alp = (scrollView.contentOffset.y+20)/200;
    
    topToolView.backgroundColor= [UIColor colorWithRed:250 green:250 blue:250 alpha:alpha];
    topToolView.leftItemButton.alpha = 1-alp;
    topToolView.rightItemButton.alpha = 1-alp;
    topToolView.rightRItemButton.alpha = 1-alp;
//临界点,就是滑动到这距离时好第一视图消失,第二视图开始显示
    if ((scrollView.contentOffset.y)>=180) {
        
        [[NSNotificationCenter defaultCenter]postNotificationName:@"SHOWTOPTOOLVIEW" object:nil];
        CGFloat alphaj ;
        
            alphaj = (scrollView.contentOffset.y-100)/200;
        
        
        topToolView.leftItemButton.alpha = alphaj;
        topToolView.rightItemButton.alpha = alphaj;
        topToolView.rightRItemButton.alpha = alphaj;
        topToolView.topCenterTitleImage.alpha = alphaj;
        
        
    }else {
        [[NSNotificationCenter defaultCenter]postNotificationName:@"HIDETOPTOOLVIEW" object:nil];
    }
}

最后附上demo
github下载地址
不麻烦的话可以 给个 star
你们的star 是我进步的动力
也欢迎来简书 私信我
爱哭的僵小鱼
有什么问题可以私信我,
欢迎叨扰,
非诚勿扰 谢谢

相关源码推荐:

我来说两句
*滑动验证:
所有评论(7)
t8569 2018-7-12 10:27:21
感谢分享,楼主V5~
回复
乱世佳人520 2018-7-12 10:27:23
小弟学习了~支持,支持
回复
phoiu 2018-7-12 10:27:38
帮帮顶顶!!
回复
ff12345 2018-7-12 10:27:53
code4app好的内容真的很多~赞
回复
inta加加 2018-7-12 10:28:05
好好 学习了 确实不错
回复
这是个逗比 2018-7-12 10:28:26
mark,收藏了
回复
AstarLab 2018-7-12 15:44:06
Astar Lab成立于2017年,旗下有两个子品牌:Astar Fund & Astar IBD。Astar Lab的基金品牌Astar Fund 拥有严格筛选的一级市场投资策略和稳健的二级市场操作策略,是多个世界顶级区块链项目的基石私募投资机构,量化基金子品牌Bit Valley上一季度平均回报率超过100%。而作为区块链投行的服务商,Astar IBD可以承担财务顾问,行业顾问,保荐商,承销商等多个角色,目前已经累计在多个环节服务二十余家机构。更多了解或有合作意向,请关注公众号:Astar区块链实验室
回复
code4app热心网友 2018-7-13 10:25:39
精华内容,楼主V5!
回复
maxueshan 2018-7-13 10:26:09
学习学习!
回复
提取码:  下载次数:8 状态:已购或VIP 售价:0(原价:15)金钱 下载权限:初级码农 
632 0 8
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,742864542

如何获得代码达人称号?

代码贡献英雄榜
用户名 下载数
通过邮件订阅最新 Code4App 信息
上一条 /4 下一条
联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )

快速回复 返回顶部 返回列表