iOS 利用利用渐变色天生图片

打印 上一主题 下一主题

主题 1788|帖子 1788|积分 5364

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
遇到如许一个场景,必要在一个配景图上盖一张渐变色的蒙层,
原来这个蒙层是直接可以利用- (CAGradientLayer *) 天生的,但是
由于我这里尚有一个特别的需求 ,就是配景图片会拉伸放大,这就必要随着列表的滚动改变 CAGradientLayer 对象的frame, 但是经过调试发现,CAGradientLayer的frame改变和图片的巨细改变是有差距的,会有一个时间差,导致底部露出图片的原样,这是不符合需求的,以是,就打算利用渐变色,天生一个图片,然后添加一个透明的imageView 放在配景视图的上面,随着配景视图放大,跟着放大蒙层图片视图,如许蒙层和配景图就完美贴合了
下面直接贴出代码
思路:创建一个透明的空视图,然后创建一个渐变 layer,
将渐变layer. 添加大空视图上,然后通过截图的方式天生一个渐变的蒙层
  1. - (CAGradientLayer *)gradientLayerOnBg
  2. {
  3.   if (!_gradientLayerOnBg) {
  4.       _gradientLayerOnBg = [[CAGradientLayer alloc] init];
  5.       _gradientLayerOnBg.frame = CGRectMake(0, 0, AUCommonUIGetScreenWidth(), self.backgroundImgView.height);
  6.       _gradientLayerOnBg.colors = @[(id)[UIColor clearColor].CGColor,(id)[UIColor clearColor].CGColor];
  7.       _gradientLayerOnBg.startPoint = CGPointMake(0, 0);
  8.       _gradientLayerOnBg.endPoint = CGPointMake(0, 1);
  9.       _gradientLayerOnBg.locations = @[@(0),@(01)];
  10.   }
  11.   return _gradientLayerOnBg;
  12. }
复制代码
  1. - (UIImage *)captureImageView
  2. {
  3.    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, AUCommonUIGetScreenWidth(), self.headerTemplView.height + AUCommonUIGetStatusBarHeight() + 16)];
  4.    view.backgroundColor = [UIColor clearColor];
  5.    [view.layer addSublayer:self.gradientLayerOnBg];
  6.    UIGraphicsBeginImageContext(view.bounds.size);
  7.    [view.layer renderInContext:UIGraphicsGetCurrentContext()];
  8.    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
  9.    UIGraphicsEndImageContext();
  10.    return image;
  11. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

傲渊山岳

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表