您的位置:首页 > 汽车 > 新车 > 苏州保洁公司加盟连锁哪家好_企业融资概念_应用商店关键词优化_宁波seo资源

苏州保洁公司加盟连锁哪家好_企业融资概念_应用商店关键词优化_宁波seo资源

2024/11/16 9:30:10 来源:https://blog.csdn.net/LIUXIAOXIAOBO/article/details/142583719  浏览:    关键词:苏州保洁公司加盟连锁哪家好_企业融资概念_应用商店关键词优化_宁波seo资源
苏州保洁公司加盟连锁哪家好_企业融资概念_应用商店关键词优化_宁波seo资源

遇到这样一个场景,需要在一个背景图上盖一张渐变色的蒙层,
本来这个蒙层是直接可以使用- (CAGradientLayer *) 生成的,但是
由于我这里还有一个特殊的需求 ,就是背景图片会拉伸放大,这就需要随着列表的滚动改变 CAGradientLayer 对象的frame, 但是经过调试发现,CAGradientLayer的frame改变和图片的大小改变是有差距的,会有一个时间差,导致底部露出图片的原样,这是不符合需求的,所以,就打算使用渐变色,生成一个图片,然后添加一个透明的imageView 放在背景视图的上面,随着背景视图放大,跟着放大蒙层图片视图,这样蒙层和背景图就完美贴合了
下面直接贴出代码

思路:创建一个透明的空视图,然后创建一个渐变 layer,
将渐变layer. 添加大空视图上,然后通过截图的方式生成一个渐变的蒙层

- (CAGradientLayer *)gradientLayerOnBg
{if (!_gradientLayerOnBg) {_gradientLayerOnBg = [[CAGradientLayer alloc] init];_gradientLayerOnBg.frame = CGRectMake(0, 0, AUCommonUIGetScreenWidth(), self.backgroundImgView.height);_gradientLayerOnBg.colors = @[(id)[UIColor clearColor].CGColor,(id)[UIColor clearColor].CGColor];_gradientLayerOnBg.startPoint = CGPointMake(0, 0);_gradientLayerOnBg.endPoint = CGPointMake(0, 1);_gradientLayerOnBg.locations = @[@(0),@(01)];}return _gradientLayerOnBg;
}
- (UIImage *)captureImageView
{UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, AUCommonUIGetScreenWidth(), self.headerTemplView.height + AUCommonUIGetStatusBarHeight() + 16)];view.backgroundColor = [UIColor clearColor];[view.layer addSublayer:self.gradientLayerOnBg];UIGraphicsBeginImageContext(view.bounds.size);[view.layer renderInContext:UIGraphicsGetCurrentContext()];UIImage *image = UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();return image;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com