网站建设管理情况说明,兰州瞒报数据,房产手机网站模板,休闲食品网站建设规划书maskView基本原理
png图片透明像素的原理maskView可类比于多张png图片的叠加遮罩#xff0c;原理类似maskView是iOS8以上才有的#xff0c;如果要考虑兼容低版本#xff0c;用maskLayer替代
//使用maskView的情况
property (nonatomic, strong)UIImageView *addImageView;…maskView基本原理
png图片透明像素的原理maskView可类比于多张png图片的叠加遮罩原理类似maskView是iOS8以上才有的如果要考虑兼容低版本用maskLayer替代
//使用maskView的情况
property (nonatomic, strong)UIImageView *addImageView; //声明叠加图片Viewself.addImageView [[UIImageView alloc]initWithFrame:CGRectMake(50, 50, 200, 200)];[self.view addSubview:self.addImageView];
self.addImageView.image [UIImage imageNamed:base];//一张底图
UIImageView *mask [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 200, 200)];
mask.image [UIImage imageNamed:mask];//一张png图片左边黑色渐变到右边白色
self.addImageView.maskView mask;//生成了叠加在一起一边半透明的图片左边黑色部分正常显示右边渐变白色显示模糊到无
注意maskView并不能用addSubview来添加遮罩
maskView配合CAGradientLayer的使用
用CAGradientLayer直接产生带透明像素通道的layer用maskView直接加载带CAGradientLayer的view可以通过对CAGradientLayer进行动画的操作实现动画效果
看实例代码 self.addImageView [[UIImageView alloc]initWithFrame:CGRectMake(50, 450, 200, 200)];[self.view addSubview:self.addImageView];self.addImageView.image [UIImage imageNamed:base];//一张底图//创建出渐变的layerCAGradientLayer *gradientLayer [CAGradientLayer layer];gradientLayer.frame self.addImageView.bounds;gradientLayer.colors [(__bridge id)[UIColor clearColor].CGColor,(__bridge id)[UIColor blackColor].CGColor,(__bridge id)[UIColor clearColor].CGColor];gradientLayer.locations [(0.05),(0.5),(0.95)];//设置渐变方向gradientLayer.startPoint CGPointMake(0, 0);gradientLayer.endPoint CGPointMake(1, 0);//容器view -用于加载创建出的CAGradientLayerUIView *containerView [[UIView alloc]initWithFrame:self.addImageView.bounds];[containerView.layer addSublayer:gradientLayer];//设定maskViewself.addImageView.maskView containerView;CGRect frame containerView.frame;frame.origin.x -200;containerView.frame frame;//给maskView做动画效果[UIView animateWithDuration:3.f animations:^{//改变位移CGRect frame containerView.frame;frame.origin.x 400;//重新赋值containerView.frame frame;}];
我们不仅可以使用CAGradientLayer创建的蒙版我们还可以对他进行动画效果的设置