Fre*_*Ali 3 xamarin.ios ios xamarin swift maui
我有一段使用 UIGraphics 方法的代码,似乎我使用的三种方法都已弃用。
这是一段 Xamarin.iOS 代码,但我相信 Swift 用户也可以在这里提供帮助,任何人都可以帮助我了解这些的新方法是什么,我正在尝试用 google 搜索,但我似乎没有得到任何信息关于这些方法的替代品的直接线索。
以下三种方法已被弃用;
UIGraphics.BeginImageContextWithOptions(size, false, ScreenDensity);
var image = UIGraphics.GetImageFromCurrentImageContext();
UIGraphics.EndImageContext();
Run Code Online (Sandbox Code Playgroud)
完整的代码如下,不确定这是否有帮助......
private UIImage CreateBufferImage()
{
if (paths is null || paths.Count == 0)
{
return null;
}
var size = Bounds.Size;
UIGraphics.BeginImageContextWithOptions(size, false, ScreenDensity);
var context = UIGraphics.GetCurrentContext();
context.SetLineCap(CGLineCap.Round);
context.SetLineJoin(CGLineJoin.Round);
foreach (var path in paths)
{
context.SetStrokeColor(path.Color.CGColor);
context.SetLineWidth(path.Width);
context.AddPath(path.Path.CGPath);
context.StrokePath();
path.IsDirty = false;
}
var image = UIGraphics.GetImageFromCurrentImageContext();
UIGraphics.EndImageContext();
return image;
}
Run Code Online (Sandbox Code Playgroud)
谢谢
您现在应该使用UIGraphicsImageRendererAPI 来绘制图像。
var renderer = new UIGraphicsImageRenderer(size, new UIGraphicsImageRendererFormat {
Opaque = false,
Scale = ScreenDensity
});
Run Code Online (Sandbox Code Playgroud)
您应该传递一个Action<UIGraphicsImageRendererContext>toCreateImage来绘制您的图像。图像将由 返回CreateImage。
var image = renderer.CreateImage(imageContext => {
// if you want a CGContext, you can get that from the CGContext property
var cgcontext = imageContext.CGContext;
// drawing code here...
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1086 次 |
| 最近记录: |