0

はい、すべてCALayerを使用してUIImageをマスクしています。imageviewにレイヤーを追加すると、レイヤー部分のみが表示され、すべての画像が白で塗りつぶされたままになります

        CALayer *mask = [CALayer layer];
        mask.contents = (id)[[UIImage imageNamed:@"mask.png"] CGImage];
        mask.frame = CGRectMake(0, 0, mainImageWidth+30, mainImageHeight);
        mask.shadowOffset = CGSizeMake(0, 3);
        mask.shadowOpacity = 1.5;

        mainImageView.layer.mask = mask;


        [mainImageView.layer setMasksToBounds:NO];

レイヤー部分を除いて画像ビューを非表示にします。どうすればこれを解決できますか

4

1 に答える 1

0

イメージ ビューを使用してマスクを作成する代わりに、UIView に 3 つのマスクを追加しました。

 mainLayer.frame = CGRectMake(0, 0, mainImageWidth, mainImageHeight);
[self.view.layer addSublayer:mainLayer];
 mainLayer.backgroundColor = [UIColor clearColor].CGColor;


secondLayer.frame = CGRectMake(gloss_x, gloss_y, gloss_w, gloss_h);
maskLayer = [CALayer layer];

UIImage *mask = [UIImage imageNamed:@"mask.png"];
maskLayer.contents = (id)mask.CGImage;
maskLayer.frame =  maskRect;//CGRectMake(gloss_x, gloss_y-50, gloss_w, gloss_h);



secondLayer.contents = (id)s_glossImage.CGImage;


[mainLayer addSublayer:secondLayer];

mainLayer.mask = maskLayer;


[mainImageView.layer addSublayer:mainLayer];

今は正常に動作しています。

于 2012-08-22T10:25:06.107 に答える