ipad – iOS7的drawViewHierarchyInRect不起作用?

ipad – iOS7的drawViewHierarchyInRect不起作用?,第1张

概述据我所知,iOS7的新 drawViewHierarchyInRect应该比CALayer的 renderInContext更快.根据 this和 this,它应该是一个简单的调用问题: [myView drawViewHierarchyInRect:myView.frame afterScreenUpdates:YES]; 代替 [myView.layer renderInContext:UIG 据我所知,iOS7的新 drawViewHierarchyInRect应该比CALayer的 renderInContext更快.根据 this和 this,它应该是一个简单的调用问题:

[myVIEw drawVIEwHIErarchyInRect:myVIEw.frame afterScreenUpdates:YES];

代替

[myVIEw.layer renderInContext:UIGraphicsGetCurrentContext()];

但是,当我尝试这个时,我只是得到空白的图像.执行捕获的完整代码,其中“self”是UIVIEw的子类,

// YES = opaque. Ignores Alpha channel,so less memory is used.        // This method for some reasons renders the    UIGraphicsBeginImageContextWithOptions(self.bounds.size,YES,self.window.screen.scale);    // Still slow.    if ( [aimAppDelegate isOniOS7OrNewer] )        [self drawVIEwHIErarchyInRect:self.frame afterScreenUpdates:YES]; // Doesn't work!    else        [self.layer renderInContext:UIGraphicsGetCurrentContext()];     // Works!    UIImage *image = UIGraphicsGetimageFromCurrentimageContext();    UIGraphicsEndImageContext();    contentimageVIEw.image = image; // this is empty if done using iOS7's way

和contentimageVIEw是一个UIImageVIEw,在初始化期间作为子视图添加到self.

此外,我想要在图像中捕获的图形包含在其他子视图中,这些子视图在初始化期间也作为子视图添加到self(包括contentimageVIEw).

使用drawVIEwHIErarchyInRect时为什么会失败的任何想法?

*更新*

如果我绘制特定的子视图,我会得到一个图像,例如:

[contentimageVIEw drawVIEwHIErarchyInRect:contentimageVIEw.frame afterScreenUpdates:YES];

要么

[self.curvesVIEw drawVIEwHIErarchyInRect:self.curvesVIEw.frame afterScreenUpdates:YES];

但是我需要将所有可见的子视图合并为一个图像.

解决方法 尝试使用self.bounds而不是self.frame – 您可能会获得在您创建的图像上下文边界之外呈现的视图图像. 总结

以上是内存溢出为你收集整理的ipad – iOS7的drawViewHierarchyInRect不起作用?全部内容,希望文章能够帮你解决ipad – iOS7的drawViewHierarchyInRect不起作用?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1080904.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存