Iphone 如何使用图层';带遮罩层的快照?
我在UIView的图层中添加了一个遮罩: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
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绘制它们。