如何屏蔽一个UIScrollView?(How to mask a UIScrollView?)

2019-06-27 07:25发布

我现在有一个像面膜我想用掩盖一个UIScrollView。 滚动视图持有1周的UIImageView。

以下是我在viewDidLoad中时刻做到:

CALayer *mask = [CALayer layer];
mask.contents = (id)[UIImage imageNamed:@"ScrollMask.png"].CGImage;
mask.frame = CGRectMake(0, 0, 512, 384);
[Scroll1.layer setMask:mask]; 

此作品在一定程度上。 它掩盖了滚动视图内的ImageView,但没有滚动视图本身。

有没有办法来掩盖滚动视图的CALayer的,而不是的ImageView层?

Answer 1:

你应该把的UIScrollView到一个UIView,然后将面膜敷到的UIView而不是UIScrollView的。

CALayer *mask = [CALayer layer];
mask.contents = (id)[UIImage imageNamed:@"ScrollMask.png"].CGImage;
mask.frame = CGRectMake(0, 0, 512, 384);

UIView *containerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 512, 384)];
[containerView.layer setMask:mask];

[containerView addSubview:Scroll1];
[self.view addSubview:containerView];


文章来源: How to mask a UIScrollView?