天天看點

不一樣的導航欄漸變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