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(, - ((-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