将UIView变成UIImage

问题描述:

如何以编程方式将UIView(带有子视图作为UIImageViews)变成UIImage?将UIView变成UIImage

这是常见的做法吗?

+0

这当然不是完全常见但有时需要。假设你想创建一些完全可怕的动画来显示/隐藏你的视图。假设动画需要将您的视图分成几个片段(例如折叠)。对于这种情况,使用原始视图的“硬拷贝”是不可避免的。 – Till 2013-03-10 16:58:15

似乎你想要一个特定视图的“截图”?

UIGraphicsBeginImageContext(view.bounds.size); 
CGContextRef ctx = UIGraphicsGetCurrentContext(); 
[view.layer renderInContext:ctx]; 
UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
+1

非常简单。感谢代码片段。好的东西添加到UIView的类别,所以它始终可用。 – 2013-03-10 21:07:23

+0

编辑细节:view.size我认为需要view.frame.size – 2013-03-10 21:13:08

+0

@BillPatterson或'bounds'。就是这样,谢谢。 – 2013-03-10 21:14:10