Swift 3,用特殊的lineCap绘制圆圈

时间:2017-09-06 03:21:31

标签: ios swift uibezierpath cashapelayer

目前我正在使用CAShapeLayer和UIBezierPath为头像绘制一条线。对于 lineCap = kCALineCapRound 的正常情况,这是好的。但我一直在努力与 START END lineCap 划线,如下图所示:

enter image description here

1 个答案:

答案 0 :(得分:0)

您无法使用形状图层绘制此圆,因为形状图层仅支持一种笔触颜色。您应该编写自己的图层类,在其中应使用kCALineCapRound绘制三个单独的圆弧段:

  1. 一个完整的黄色圆圈。
  2. 在黄色圆圈上绘制蓝色部分。它是可见的,你可以看到圆形的末端。
  3. 绘制一段黄色圆圈,比如顶部5度。然后你还可以看到黄线的圆形末端。
  4. 您应该使用CGPathCGContext代替UIBezierPath