天天看点

不一样的导航栏渐变JYJNavigationBar

JYJNavigationBar

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

不一样的导航栏渐变JYJNavigationBar

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

下面我就大致说说我的思路:首先我想到的是利用系统导航栏相关的做渐变。首先在gitHub上找到

LTNavigationBar

这款用的比较多的导航栏渐变,他是用RunTime 写的。效果是不错的,但是,导航栏全局只有一份,他的滑动返回效果特别差。

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

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

    if (offsetY > -imageH + startH) {
        CGFloat alpha = MIN(,  - ((-imageH + startH +  - offsetY) / ));
        self.navBarView.backgroundColor = BXAlphaColor(, , , alpha); 
    } else {
        self.navBarView.backgroundColor = BXAlphaColor(, , , );
    }
    
// ------------------------------华丽的分割线------------------------------------
    // 设置头部放大
    // 向下拽了多少距离
    CGFloat down = - imageH - scrollView.contentOffset.y;
    if (down < ) 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