如果你想在CGContext中绘制它:
使用[UIBezierPath bezierPathWithArcCenter:radius:startAngle:endAngle:顺时针:]创建一个包含半圆弧的路径。然后使用CGPathCreateCopyByStrokingPath在圆弧周围创建一个封闭的形状。使用CGContextAddPath将此封闭形状添加到上下文的路径中,然后使用CGContextClip将剪辑区域设置为粗弧。
使用CGGradientCreateWithColors创建一个带有彩虹颜色的CGGradient。使用CGContextDrawLinearGradient使用渐变填充剪辑区域。
如果您想使用CALayer绘图:
创建一个CAGradientLayer。将图层的颜色属性设置为彩虹的颜色。将图层的startPoint设置为(0,0),将图层的endPoint设置为(1,0)。
创建CAShapeLayer并将其设置为渐层图层的掩码。使用[UIBezierPath bezierPathWithArcCenter:radius:startAngle:endAngle:cis …]和CGPathCreateCopyByStrokingPath创建一个包围粗弧的路径,并将此路径设置为形状图层的路径。