0
func drawRadialGradient(context:CGContext , rect:CGRect , startColor:UIColor , endColor:UIColor){
let colorSpace = CGColorSpaceCreateDeviceRGB()
let colorComponents = [startColor.cgColor,endColor.cgColor] as CFArray
let locations:[CGFloat] = [0.0,1.0]
context.saveGState()
if let gradient = CGGradient.init(colorsSpace: colorSpace, colors: colorComponents, locations: locations) {
context.drawRadialGradient(gradient, startCenter: CGPoint(x:rect.midX,y:0), startRadius: 0, endCenter: CGPoint(x:rect.midX,y:0), endRadius: rect.midX, options: .drawsBeforeStartLocation)
}
context.restoreGState()
}
上記のコードは、0,0、width、totalViewheight/2.0の矩形を持ちます。すなわち明るいオレンジ色の領域である。ここtotalViewheight = 40.0ラジアルグラデーションを描画するUIViewのiOS上半分の領域
lightOrangeRect = CGRectMake(0,0、幅、totalViewheight/2.0) すなわち(0,0,414,20)
I want to draw a radial gradient touching points
1) 0,0 i.e (0,0)
2) lightOrangeRect/2.0, lightOrangeRect.height i.e (207,20)
3) lightOrangeRect, 0 i.e (414,0)
したがって、でアークの光沢効果を与えるよう上半分の領域(薄いオレンジ色の領域)。