导航的渐变设置

来源:互联网 发布:b超数据看男孩女孩 编辑:程序博客网 时间:2024/04/23 16:34

分享我所知道的实现navigationBar渐变的几种方法

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{    CGFloat offSetY = scrollView.contentOffset.y;    if (offSetY < 64.0) {        CGFloat alpha = offSetY / 64.0;        [self.navigationController.navigationBar setBackgroundImage:[self imageWithColor:[UIColor colorWithRed:0 green:0 blue:1.0 alpha:alpha]] forBarMetrics:UIBarMetricsDefault];    }else{        [self.navigationController.navigationBar setBackgroundImage:[self imageWithColor:[UIColor colorWithRed:0 green:0 blue:1.0 alpha:0]] forBarMetrics:UIBarMetricsDefault];    }    //    但是有细线,这就需要我们做进一步处理,把线去掉,如下方法即可://    self.navigationController.navigationBar.shadowImage = [UIImage new];}-(UIImage *)imageWithColor:(UIColor *)color{    // 描述矩形    CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);    // 开启位图上下文    UIGraphicsBeginImageContext(rect.size);    // 获取位图上下文    CGContextRef context = UIGraphicsGetCurrentContext();    // 使用color演示填充上下文    CGContextSetFillColorWithColor(context, [color CGColor]);    // 渲染上下文    CGContextFillRect(context, rect);    // 从上下文中获取图片    UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext();    // 结束上下文    UIGraphicsEndImageContext();    return theImage;}
1 0