3

UIViewのレイヤーにマスクを追加しました。

CGImageRef maskImageRef = [UIImage imageNamed:"Icon.png"].CGImage; 
CALayer maskLayer = [CALayer layer];
maskLayer.contents = (__bridge id)maskImageRef;
self.layer.mask = maskLayer;

次に、このコードを使用してUIViewからスナップショットを取得します。

[self.layer renderInContext:mainViewContentContext];

しかし、マスクは描かれていませんでした。

マスクでself.layerを描く方法は?

スペシャルTHX!

4

2 に答える 2

2

これを修正する1つの方法は、 Quartz関数を使用することです。

drawRectメソッド内でCGContextClipToMask(context、rect、maskImage)を使用します

ヘルプについては、 CGContextClipToMaskのサンプルリンクを参照してください

于 2012-06-18T05:28:01.837 に答える
2

画面のスクリーンショットを作成する必要があります。次のコードを試してください。

CGRect screenRect =CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height-44); 
UIGraphicsBeginImageContext(screenRect.size);

CGContextRef ctx = UIGraphicsGetCurrentContext();
[self.view.layer renderInContext:ctx];

UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

UIImageWriteToSavedPhotosAlbum(viewImage, self, nil, nil);

お役に立てば幸いです。

于 2012-06-18T06:00:23.357 に答える