Iphone 如何使用图层';带遮罩层的快照?

Iphone 如何使用图层';带遮罩层的快照?,iphone,quartz-graphics,Iphone,Quartz Graphics,我在UIView的图层中添加了一个遮罩: CGImageRef maskImageRef = [UIImage imageNamed:"Icon.png"].CGImage; CALayer maskLayer = [CALayer layer]; maskLayer.contents = (__bridge id)maskImageRef; self.layer.mask = maskLayer; 然后,我使用以下代码从UIView获取快照: [self.layer renderInCon

我在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];
但是面具没有画出来

如何使用遮罩绘制自我图层


特价thx

解决此问题的一种方法是使用Quartz函数

在drawRect方法中使用CGContextClipToMask(上下文、rect、maskImage)


请参阅链接以获取帮助

您必须查看屏幕截图并尝试以下代码:

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);

我希望能帮助你。

self.view.layer在“renderincontnxt:”:~(layerA.renderInContext可能重复)时不会在context中渲染layerA的遮罩层这需要做很多工作。我必须自己处理遮罩层、主层和视图的转换。我真的用了四天的时间用quartzcore绘制它们。