irpas技术客

iOS开发之颜色渐变_未来的你的现在_ios 渐变色

网络投稿 2486

CAGradientLayer

在其背景色上绘制颜色渐变的图层,填充该图层的形状(包括圆角)。

使用渐变层可以创建包含任意数量颜色的颜色渐变。默认情况下,颜色均匀地分布在整个图层中,但您可以通过渐变指定控制颜色位置的位置。

下例,显示了如何创建包含四种颜色的渐变层,这些颜色通过渐变均匀分布。将图层旋转90°(pi / 2弧度)得到水平梯度。

gradientLayer.colors = [UIColor.red.cgColor, UIColor.yellow.cgColor, UIColor.green.cgColor, UIColor.blue.cgColor] gradientLayer.transform = CATransform3DMakeRotation(CGFloat.pi / 2, 0, 0, 1)

默认方向是从上到下进行渐变

CAGradientLayer的属性

colors

CGColorRef对象数组,定义每个渐变停止的颜色。可以做成动画。

locations 一个可选的NSNumber对象数组,定义每个渐变停止的位置。可以做成动画。

endPoint 在图层的坐标空间中绘制渐变的终点。可以做成动画。

终点对应梯度的最后一站。点在单位坐标空间中定义,然后在绘制时映射到层的边界矩形。默认值为(0.5,1.0)。

startPoint

在图层的坐标空间中绘制渐变的起始点。可以做成动画。

起始点对应于梯度的第一个停止点。点在单位坐标空间中定义,然后在绘制时映射到层的边界矩形。默认值为(0.5,0.0)。

type

由图层绘制的渐变样式。 默认X轴

transform 相对于其边界矩形的锚点应用于层的变换。默认为单位变换。可以做成动画。

示例:

// 设置一个渐变按钮 let d = QMUIButton() d.setTitle(R.string.localizable.settingNavUserTxt(), for: .normal) d.setTitleColor(.white, for: .normal) d.titleLabel?.font = UIFont.systemFont(ofSize: FONT_MEDDLE) d.backgroundColor = .primaryColor d.cornerRadius = 8 // 必须使用CGRect去设置大小 d.frame = CGRect(x: 0, y: 0, width: 168, height: 40) // 设置渐变色 let gradient = CAGradientLayer() gradient.colors = [UIColor(red: 1, green: 1, blue: 1, alpha: 0).cgColor,UIColor(red: 1, green: 1, blue: 1, alpha: 0.4).cgColor] gradient.transform = CATransform3DMakeRotation(0, 0, 0, 1) gradient.frame = d.bounds gradient.borderWidth = 2 gradient.borderColor = UIColor.primaryColor.cgColor gradient.cornerRadius = 8 gradient.startPoint = CGPoint(x: 0, y: 0) gradient.endPoint = CGPoint(x: 0, y: 1) // 将渐变添加到按钮layer上 d.layer.addSublayer(gradient) d.clipsToBounds = true

效果如图:


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #iOS #渐变色 #iOS开发之颜色渐变