这是Xamarin.iOS代码,但我认为原生人也可以发现问题,所以我也将它标记为ObjC。
我正在对UIView进行子类化并“滥用”它以从视图的X,Y绘制虚线到视图的右边,底部边界。
我设置的颜色是白色。线条样式应该是虚线。但是我得到了一个黑色,实体行。我在这里做错了什么?
public override void Draw (RectangleF rect)
{
using (CGContext g = UIGraphics.GetCurrentContext ())
{
g.SetLineWidth (1f);
g.SetLineDash (0, new float[] { 10f, 4f });
g.MoveTo (rect.X, rect.Y);
g.AddLineToPoint (rect.Right, rect.Bottom);
g.SetStrokeColor (this.color.CGColor);
g.StrokePath ();
}
}
答案 0 :(得分:3)
一旦你在这里发布问题,答案就会变得很明显: - )
此行导致问题:
g.SetLineDash (0, new float[] { 10f, 4f });
必须是:
g.SetLineDash (0, new float[] { 10f, 4f }, 2);
来自Apple的documentation:
如果lengths参数指定了一个数组,则传递数字 数组中的元素。否则,传递0。