#JYJNavigationBar gitHub地址 https://github.com/jiangyongjian/JYJNavigationBar
最近想买了点基金,同事给我推荐了一款名叫蛋卷的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