截图单独的UIView(不是self.view)

时间:2012-05-27 06:35:32

标签: objective-c ios xcode uiview

基本上我想截图一个名为CustomViewLayout的UIView,它属于MyClass。 MyClass的视图被分配给NormalView。因此,如果我调用self.view,它将引用NormalView。我创建了一个属性viewCustom,它是CustomViewLayout的出口。无论如何,我想截图CustomViewLayout,我试过这个:

UIGraphicsBeginImageContextWithOptions(self.viewCustom.bounds.size, self.viewCustom.opaque, 0.0);

[self.viewCustom.layer renderInContext:UIGraphicsGetCurrentContext()];

UIImage * img = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

return img;

然后在应用内邮件(MFMailComposeViewController)内显示/附加该图像。它不起作用,它显示一个带有问号的蓝色框,我认为这意味着图像不可读。我知道我的应用程序内邮件图像附件代码没有任何问题,因为如果我将截屏代码更改为截图self.view,如下所示:

UIGraphicsBeginImageContextWithOptions(self.viewCustom.bounds.size, self.viewCustom.opaque, 0.0);

[self.viewCustom.layer renderInContext:UIGraphicsGetCurrentContext()];

UIImage * img = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

return img;

然后它工作正常。那么我该怎么做才能截断我的其他观点呢? 谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

解决方案很容易从MyClass加载不同的笔尖名称,然后稍后重新加载。 简单!