1.簡(jiǎn)介
CAGradientLayer可以很容易的將多種顏色混合到一起,特別適合用來做一個(gè)特定的漸變背景狗唉。
2.屬性
屬性 | 作用 |
---|---|
colors | 顏色數(shù)組初烘,數(shù)組內(nèi)是包含的CGColor |
locations | 每種顏色的錨點(diǎn),如不指定分俯,則均分肾筐,值從0-1 |
startPoint | 開始的錨點(diǎn) |
endPoint | 結(jié)束的錨點(diǎn) |
type | layer的類型,目前只有axial一個(gè)值 |
startPoint和endPoint是一個(gè)相對(duì)的點(diǎn)澳迫,沒有具體的位置局齿,x表示位于x軸上的位置,最左邊為0橄登,最右邊為1抓歼。y表示位于y有軸上的位置,0表示最上方拢锹,1表示底端谣妻。
3.使用
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
setupLayer()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func setupLayer() {
//創(chuàng)建出layer
let gradientLayer = CAGradientLayer()
gradientLayer.frame = view.frame
//設(shè)置顏色數(shù)組
gradientLayer.colors = [cgColorFor(red: 200, green: 0, blue: 0),
cgColorFor(red: 255, green: 100, blue: 30),
cgColorFor(red: 255, green: 200, blue: 30),
cgColorFor(red: 50, green: 200, blue: 0),
cgColorFor(red: 30, green: 0, blue: 100),
cgColorFor(red: 50, green: 0, blue: 70)]
//設(shè)置錨點(diǎn)
gradientLayer.startPoint = CGPoint(x: 0, y: 0)
gradientLayer.endPoint = CGPoint(x: 0, y: 1)
view.layer.addSublayer(gradientLayer)
}
func cgColorFor(red: CGFloat, green: CGFloat, blue: CGFloat) -> CGColor {
return UIColor(red: red/255.0, green: green/255.0, blue: blue/255.0, alpha: 1).cgColor
}
}
最終效果: