5

我目前有一个图像遮罩,我想用它来遮罩 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 的图层?

4

1 回答 1

17

您应该将 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];
于 2012-09-07T10:03:56.463 回答