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?

特别感谢!

4

2 回答 2

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 回答
2

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

在 drawRect 方法中使用 CGContextClipToMask(context, rect, maskImage)

请参阅CGContextClipToMask 示例链接以获取帮助

于 2012-06-18T05:28:01.837 回答