2013-03-10 73 views
0

如何以編程方式將UIView(帶有子視圖作爲UIImageViews)變成UIImage?將UIView變成UIImage

這是常見的做法嗎?

+0

這當然不是完全常見但有時需要。假設你想創建一些完全可怕的動畫來顯示/隱藏你的視圖。假設動畫需要將您的視圖分成幾個片段(例如摺疊)。對於這種情況,使用原始視圖的「硬拷貝」是不可避免的。 – Till 2013-03-10 16:58:15

回答

7

似乎你想要一個特定視圖的「截圖」?

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