iOS導覽列背景透明漸層

來源:互聯網
上載者:User

標籤:分析   return   不用   文章   arm   oat   繪圖   恢複   etc   

重點分析:

1.隱藏導航的最下面的線。

2.設定導航背景的不透明度(ios7.0以上不用設定,translucent預設的就是Yes不用修改,但如果別人修改了或出現那種情況,需要設定為Yes)。

3.頁面消失時導航恢複原樣。

4.滾動時調用方法設定alpha來控制導航背景的漸層(也是核心,重點在這裡)。

核心代碼如下:

1.將色彩轉換為圖片

- (UIImage *)imageWithColor:(UIColor *)color {    //建立1像素地區並開始圖片繪圖    CGRect rect = CGRectMake(0, 0, 1, 1);    UIGraphicsBeginImageContext(rect.size);    //建立畫板並填充顏色和地區    CGContextRef context = UIGraphicsGetCurrentContext();    CGContextSetFillColorWithColor(context, [color CGColor]);    CGContextFillRect(context, rect);    //從畫板上擷取圖片並關閉圖片繪圖    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();    UIGraphicsEndImageContext();    return image;}

2.滾動時調用改變導航漸層

- (void)changeColor:(UIColor *)color withScrollView:(UIScrollView *)scrollView andValud:(CGFloat)value{/**    if (scrollView.contentOffset.y < 0) { 謹慎選擇這個,只適用於固定的導覽列,如果是自訂view效果會不一樣        //下拉時導航隱藏        self.hidden = YES;    }else{*/        self.hidden = NO;        //計算透明度        CGFloat alpha = scrollView.contentOffset.y /value > 1.0f ? 1 : scrollView.contentOffset.y/value;        //設定顏色改為圖片        UIImage *image = [self imageWithColor:[color colorWithAlphaComponent:alpha]];        [self setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];        self.translucent = alpha >=1.0f ? NO : YES;  /*  }*/}

3.隱藏導覽列下的線

- (void)start{    UIImageView *shawImage = [self findNavLineImageOn:self];    shawImage.hidden = YES;    self.translucent = YES;}

4.頁面消失後重設

(適用於導覽列不適用於自訂view)UIImageView *shawImage = [self findNavLineImageOn:self]; shawImage.hidden = NO;  [self setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];  self.translucent = NO;

5.參考文章:https://www.jianshu.com/p/10c71cb19b5e 

iOS導覽列背景透明漸層

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.