0

基本上我想截屏一个名为 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;

然后它工作正常。那么我应该怎么做才能截取我的另一个视图呢?谢谢您的帮助!

4

1 回答 1

0

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

于 2012-05-27T07:27:32.210 回答