从renderInContext中删除图层

时间:2011-09-27 09:57:42

标签: ios ipad core-graphics calayer layer

我使用此代码制作屏幕截图

CGFloat breed = 768;
CGFloat hoogte = 975;
CGSize afmeting = CGSizeMake(breed, hoogte);
UIGraphicsBeginImageContext(afmeting);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(image)];

图像中有一些我不想要的图层(按钮和文本标签)。 有没有办法从renderincontext中删除一些图层?

现在我在制作屏幕截图之前使用textLabel.hidden = YES,并在完成时将隐藏设置为NO。也用于按钮和其他标签。

1 个答案:

答案 0 :(得分:0)

所有按钮和标签都有自己的图层。所有这些图层都可以渲染到某些图形上下文中。现在您将self.view.layer生成为图像,您可以尝试创建另一个视图,该视图仅包含您想要渲染的项目(在另一个视图中将标签和按钮分开,这将与“图片视图”重叠)或者你实际上可以逐个渲染所有组件而不包括你的按钮(尽管这可能比你现在做的更多)。如果您考虑将一个视图放在另一个视图之上,请记住,如果您希望相应地做出反应,则必须将顶视图中的所有输入(触摸和事件)发送到底视图。