[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不起作用?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)