iOS开发图片做遮罩层,遮罩里面还可以滚动的

iOS开发图片做遮罩层,遮罩里面还可以滚动的,第1张

#pragma mark -这里是实现了图片遮罩

picImageview=[[UIImageView alloc]init]

int a=3

picImageview.frame=CGRectMake(0, 0, 180*a, 250*a)

UIImage * picImage =[UIImage imageNamed:@"1.png"]

picImageview.image=picImage

UIScrollView *s=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 180, 250)]

s.backgroundColor=[UIColor redColor]

s.contentSize=CGSizeMake(180*a, 250*a)

[s addSubview:picImageview]

//遮罩层的图片

CALayer *maskLayer=[CALayer layer]

maskLayer.frame=CGRectMake(0, 0, 180, 250)

UIImage * maskImage =[UIImage imageNamed:@"abc.png"]

maskLayer.contents=(__bridge id)maskImage.CGImage

UIView *aaaa=[[UIView alloc]initWithFrame:CGRectMake(0, 80, 180, 250)]

aaaa.userInteractionEnabled=YES

aaaa.layer.mask=maskLayer

[aaaa addSubview:s]

[self.view addSubview:aaaa]

知 识 点 / 超 人

mask(遮罩层)

一个CALayer中如果存在多个子CALayer,与一个UIView中存在多个子View是一样的。但CALayer中还有一个特殊的存在, mask (遮罩层),mask是CALayer的一个属性,其本身也是CALayer,添加mask也是添加一个子CALayer。但是呈现方式与加一个子CALayer不同。

加上mask后整个绿色界面完全消失了,并且我们的mask大小只设置了 55,绿色界面大小是75,绿色界面以内mask以外的区域也没显示.而是整个UIView都消失了。

绿色的界面又出现了。

alpha都设置为0了,为什么会显示边框呢? 这是因为CALayer分为3层,contents层、backgroundColor层还有border层。alpha只会影响backgroundColor层。控制整个mask透明度的是opacity属性而不是alpha


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11513674.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存