5

現在、UIScrollView をマスクするために使用したいイメージ マスクがあります。scrollview は 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 をマスクしますが、スクロールビュー自体はマスクしません。

imageviewのレイヤーではなく、スクロールビューのCALayerをマスクする方法はありますか?

4

1 に答える 1

17

UIScrollView を UIView に配置してから、UIScrollView の代わりに UIView にマスクを適用する必要があります。

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 に答える