iOS点点滴滴iOS 开发每天分享优质文章

iOS开发:利用CAGradientLayer实现图片融合。

2021-11-01  本文已影响0人  jlstmac

先上效果:将两张图片融合。
两张原图:


IMG_2312.JPG IMG_2313.JPG

融合之后的图:


IMG_1533.JPG

原理如下:将两张图重合,同时,使得两张图重合部分透明度渐变。
其中透明度渐变的实现就是设置UIImageView的layer的mask为一个CAGradientLayer。
核心代码:

CAGradientLayer* maskLayer = CAGradientLayer.new;
maskLayer.frame = self.bounds;
self.layer.mask = maskLayer;
maskLayer.startPoint = CGPointMake(0, 0);
maskLayer.endPoint = CGPointMake(0, 1);
UIColor* colorAlpha0 = [[UIColor clearColor] colorWithAlphaComponent:0];
UIColor* colorAlpha05 = [[UIColor clearColor] colorWithAlphaComponent:0.5];
UIColor* colorAlpha1 = [[UIColor clearColor] colorWithAlphaComponent:1];
NSArray* colors,*locations;
colors = @[(__bridge id)colorAlpha1.CGColor,
                                   (__bridge id)colorAlpha1.CGColor,(__bridge id)colorAlpha05.CGColor];
    locations = @[@(0),@(1 - offest/relativeHeight), @(1)];
//设置颜色数组
maskLayer.colors = colors;
//设置颜色分割点(区域渐变范围:0-1)
maskLayer.locations = locations;

上下两个UIImageView的重叠区域都需要设置CAGradientLayer。

上一篇下一篇

猜你喜欢

热点阅读