美文网首页
导航栏动态影藏或者透明

导航栏动态影藏或者透明

作者: 海笙樾 | 来源:发表于2018-12-22 10:54 被阅读0次
    #pragma mark - 顶!d=====( ̄▽ ̄*)b部的导航渐变
    - (void)scrollViewDidScroll:(UIScrollView *)scrollView{
        NSLog(@"当前的offset %f",scrollView.contentOffset.y);
        float currentAlpha = (scrollView.contentOffset.y+TOPSCREENHIGHT)/(float)(52+64);
        UIColor *color = TABBARCOLOR;
        UIImage *image = [self imageWithColor:[color colorWithAlphaComponent:currentAlpha]];
        if (scrollView.contentOffset.y == 0.000) {
            image = [self imageWithColor:[color colorWithAlphaComponent:0]];
        }
        
        [self.navigationController.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
        [self.navigationController.navigationBar setShadowImage:image];
        if (currentAlpha >= 1) {
            self.title = @"课程详情";
        }else{
            self.title = @"";
        }
    }
    - (UIImage *)imageWithColor:(UIColor *)color {
        CGRect rect = CGRectMake(0, 0, 1, 1);
        UIGraphicsBeginImageContext(rect.size);
        CGContextRef context = UIGraphicsGetCurrentContext();
        [color setFill];
        CGContextFillRect(context, rect);
        UIImage *imgae = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        return imgae;
    }
    - (UIImage *)imageWithColor:(UIColor *)color andSize:(CGSize)size {
        
        CGRect rect = CGRectMake(0, 0, size.width, size.height);
        UIGraphicsBeginImageContext(rect.size);
        CGContextRef context = UIGraphicsGetCurrentContext();
        CGContextSetFillColorWithColor(context, [color CGColor]);
        CGContextFillRect(context, rect);
        UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
        CGContextAddEllipseInRect(context, rect);
        UIGraphicsEndImageContext();
        return image;
    }
    

    相关文章

      网友评论

          本文标题:导航栏动态影藏或者透明

          本文链接:https://www.haomeiwen.com/subject/tyhikqtx.html