渲染 UIView 及其子级
我有一个 UIView,它有一个图像和一些按钮作为其子视图。 我想使用 renderInContext 或其他方法获取它的“快照”图像。
[clefView.layer renderInContext:mainViewContentContext];
如果我将它传递给我的 UIView
(如上所述),那么我会得到一个空白位图。 没有任何子项被渲染到位图中。
如果我将图像的子视图传递给它,那么我会得到该位图的图像,并且不出所料,没有它的同级(按钮)。
我有点希望 renderInContext
能够获取图像及其所有可见子项并将其渲染为位图。 有谁知道如何做到这一点?
I have a UIView
that has an image and some buttons as its subviews. I'd like to get a "snapshot" image of it using renderInContext
, or other method.
[clefView.layer renderInContext:mainViewContentContext];
If I pass it my UIView
(as above) then I get a blank bitmap. None of the children are rendered into the bitmap.
If I pass it the child view that is the image, then I get an image of that bitmap, and, unsurprisingly, none of its siblings (buttons).
I was sort of hoping that renderInContext
would take the image and all it's visible children and render it into a bitmap. Has anyone have any ideas how to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试这样的事情:
Try something like this:
简单的 4 行版本对我来说不起作用。 我有一个 UIView (带有子层)和一个子 UITextView。 我可以将 UIView 渲染到 UIImage 中,但子 UITextView 不会被渲染。
我的简单解决方案如下:
请注意,CGContextTranslateCTM 的简单使用假设子视图除了平移之外没有任何变换。 另外,我假设子视图完全包含在父视图框架内。
The simple 4-line version didn't work for me. I have a UIView (with sublayers), and a child UITextView. I can render the UIView into the UIImage OK, but the child UITextView does not get rendered.
My simple solution is as follows:
Note that the simple use of CGContextTranslateCTM assumes the child views have no transform other than translation. Also I'm assuming the child views are entirely contained within the parent view frame.