Xamarin.ios xamrin.ios从上边缘而不是右边缘绘制圆形进度条

Xamarin.ios xamrin.ios从上边缘而不是右边缘绘制圆形进度条,xamarin.ios,draw,cgcontext,Xamarin.ios,Draw,Cgcontext,我正在开发xamarin.forms应用程序。为此,我需要一个圆形的进度条。我几乎让它在xamarin.ios中使用CustomRenderer工作,但这并不是我想要的 我在xamarin.ios渲染器中的圆形progressbar可以工作,但从包含矩形的右边缘开始。但我希望它从上边缘顺时针方向开始 我试着将起始角度改为-90或270,但它仍然从右侧开始,有时也不起作用。我不确定它在哪种情况下不工作,但我认为当我在代码中使用Math.PI常量时,Draw从不调用。我已经提到了链接 我希望从圆圈的

我正在开发xamarin.forms应用程序。为此,我需要一个圆形的进度条。我几乎让它在xamarin.ios中使用CustomRenderer工作,但这并不是我想要的

我在xamarin.ios渲染器中的圆形progressbar可以工作,但从包含矩形的右边缘开始。但我希望它从上边缘顺时针方向开始

我试着将起始角度改为-90或270,但它仍然从右侧开始,有时也不起作用。我不确定它在哪种情况下不工作,但我认为当我在代码中使用
Math.PI
常量时,
Draw
从不调用。我已经提到了链接

我希望从圆圈的顶端开始运行它。请帮忙


谢谢

这是因为起始角度不是从0点钟开始的。以下是其默认坐标系:

所以每个角度应该是负0.5π。修改您的代码,如下所示:

// Draw overlay circle
var pathStatus = new CGPath();
_frontColor.SetStroke();
pathStatus.AddArc(x, y, _radius, -0.25f * FULL_CIRCLE, (_percentComplete-0.25f) * FULL_CIRCLE, false);
g.AddPath(pathStatus);
g.DrawPath(CGPathDrawingMode.Stroke); 
@这是我的荣幸:)。
// Draw overlay circle
var pathStatus = new CGPath();
_frontColor.SetStroke();
pathStatus.AddArc(x, y, _radius, -0.25f * FULL_CIRCLE, (_percentComplete-0.25f) * FULL_CIRCLE, false);
g.AddPath(pathStatus);
g.DrawPath(CGPathDrawingMode.Stroke);