我正在嘗試創建視圖的位圖副本,以將其用作拖動操作的拖動陰影。將視圖渲染到上下文中的結果爲空圖像
我已經使用這裏描述的技術:
How to capture UIView to UIImage without loss of quality on retina display
How Do I Take a Screen Shot of a UIView?
How to get a color image in iPhone sdk(呈現實心填充到視圖,導致在一個空的圖像太)
但結果總是一個透明/空的圖像(它不是零/空,我檢查)
我試圖複製的視圖包含(透明)SVG。
這裏是我的代碼:
// always results in an fully transparent/empty image
private UIView CreateDragShadow(UIView view)
{
UIGraphics.BeginImageContextWithOptions(view.Bounds.Size, false, 0.0f);
CGContext context = UIGraphics.GetCurrentContext();
//view.DrawViewHierarchy(view.Bounds, true); // "old" way
view.Layer.RenderInContext(context); // recommended way
UIImage image = UIGraphics.GetImageFromCurrentImageContext();
UIGraphics.EndImageContext();
UIImageView dropShadow = new UIImageView();
dropShadow.Image = image;
return dropShadow;
}
我也寫了一個小測試功能,看看如果視圖被添加到上海華正確,它的工作原理和正確生成一個白色的UIView用「拖影」寫上:
// this produces a white drag shadow image with "Drag shadow" written on it
private UIView CreateDragShadowTest(UIView view)
{
// test with a simple UITextView to see if the approach works
UITextView viewTestShadow = new UITextView(view.Frame);
viewTestShadow.Bounds = view.Bounds;
viewTestShadow.Text = "Drag shadow";
return viewTestShadow;
}
有人知道發生了什麼事嗎?
我也開放了完全不同的方式來做到這一點。
此致敬禮!