ios渐变色

Core Graphics 是一套非常强大的底层 API 接口集合。在这篇教程中,我们将借助 Core Graphics 来创建渐变颜色。出于简便起见,我们将创建线性渐变 (linear gradients)。所谓线性渐变,是从一个点到另外一个点颜色过渡的描述。将会创建一个从左向右渐变的视图。

1.自定义一个view ,重写drawRect方法:

//步骤

1.UIGraphicsGetCurrentContext得到了图形上下文 (graphical context),这里可以当做一个新的画布。

2.图形上下文将被存储,以便于之后的存储操作。

3.CGColorSpace描述的是颜色的域值范围。大多情况下你会使用到 RGB 模式来描述颜色。

4.这里我们定义一个渐变样式的起始颜色和结束颜色。CGColor对象是底层颜色接口的定义。这个接口方5.法会从CGColor中获取指定颜色。

6.在这个数组中,将 RGB 颜色分量和 alpha 值写入。

7.在此处可以定义各种颜色的相对位置。

8.CGGradient用来描述渐变信息。

9.这里渐变将沿纵轴 (vertical axis) 方向绘制。

10.存储图形上下文。

//相关代码

overridefuncdraw(_rect:CGRect) {

// 1

guardletcurrentContext =UIGraphicsGetCurrentContext()else{return}

// 2

currentContext.saveGState()

// 3

letcolorSpace =CGColorSpaceCreateDeviceRGB()

// 4

letstartColor =UIColor.red

guardletstartColorComponents = startColor.cgColor.componentselse{return}

//

letmiddleColor =UIColor.yellow

guardletmiddleColorComponents = middleColor.cgColor.componentselse{return}

letendColor =UIColor.blue

guardletendColorComponents = endColor.cgColor.componentselse{return}

// 5

letcolorComponents: [CGFloat]

= [startColorComponents[0], startColorComponents[1], startColorComponents[2], startColorComponents[3],

middleColorComponents[0], middleColorComponents[1], middleColorComponents[2], middleColorComponents[3],

endColorComponents[0], endColorComponents[1], endColorComponents[2], endColorComponents[3]]

// 6

letlocations:[CGFloat] = [0.0,0.5,1.0]

// 7

guardletgradient =CGGradient(colorSpace: colorSpace,colorComponents: colorComponents,locations: locations,count: locations.count)else{return}

letstartPoint =CGPoint(x:0, y:self.bounds.height)

letendPoint =CGPoint(x:self.bounds.width,y:self.bounds.height)

// 8

currentContext.drawLinearGradient(gradient, start: startPoint, end: endPoint, options:CGGradientDrawingOptions(rawValue:UInt32(0)))

// 9

currentContext.restoreGState()

}

//效果图

ios渐变色_第1张图片

你可能感兴趣的:(ios渐变色)