不一样的导航栏渐变

JYJNavigationBar

gitHub地址 https://github.com/jiangyongjian/JYJNavigationBar

JYJNavigationBar.gif

最近想买了点基金,同事给我推荐了一款名叫蛋卷的app。然后看了他的导航栏,滑动效果非常好,于是小编也简单模仿了一下。

下面我就大致说说我的思路:首先我想到的是利用系统导航栏相关的做渐变。首先在gitHub上找到 LTNavigationBar 这款用的比较多的导航栏渐变,他是用RunTime 写的。效果是不错的,但是,导航栏全局只有一份,他的滑动返回效果特别差。

根据导航栏全局只有一份,于是小编换了个思路,把导航栏变背景设置成透明,然后监听页面的滚动,自己在self.view加一次view上去。根据滚动,设置透明度。具体实现代码如下:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    CGFloat offsetY = scrollView.contentOffset.y;

    if (offsetY > -imageH + startH) {
        CGFloat alpha = MIN(1, 1 - ((-imageH + startH + 64 - offsetY) / 64));
        self.navBarView.backgroundColor = BXAlphaColor(253, 171, 47, alpha); 
    } else {
        self.navBarView.backgroundColor = BXAlphaColor(253, 171, 47, 0);
    }
    
// ------------------------------华丽的分割线------------------------------------
    // 设置头部放大
    // 向下拽了多少距离
    CGFloat down = - imageH - scrollView.contentOffset.y;
    if (down < 0) return;
    
    CGRect frame = self.headerImage.frame;
    frame.origin.y = - imageH - down;
    frame.size.height = imageH + down;
    self.headerImage.frame = frame;
}

demo我放在gitHub上了,可以去下载看看。https://github.com/jiangyongjian/JYJNavigationBar

联系方式gitHub上有, 小弟不才,出现bug希望大家踊跃联系我,把程序写的更好。有更好的想法,有不明白的联系我。thanks

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值