渐变色的简单实现
let gradientLayer = CAGradientLayer()
gradientLayer.frame = self.view.bounds
gradientLayer.colors = [UIColor(hex: "ffffff").cgColor, UIColor(hex: "000000").cgColor]
view.layer.addSublayer(gradientLayer)
写成扩展的自定义方法
import UIKit
extension UIView {
public func addGradientLayer(
start: CGPoint = CGPoint(x: 0, y: 0), //渐变起点
end: CGPoint = CGPoint(x: 1, y: 1), //渐变终点
frame: CGRect,
colors: [CGColor]
) {
layoutIfNeeded()
removeGradientLayer()
let gradientLayer = CAGradientLayer()
gradientLayer.startPoint = start
gradientLayer.endPoint = end
gradientLayer.frame = frame
gradientLayer.colors = colors
layer.insertSublayer(gradientLayer, at: 0)
}
public func removeGradientLayer() {
guard let layers = self.layer.sublayers else { return }
for layer in layers {
if layer.isKind(of: CAGradientLayer.self) {
layer.removeFromSuperlayer()
}
}
}
}
使用
view.addGradientLayer(frame: view.bounds, colors: [UIColor(hex: "ffffff").cgColor, UIColor(hex: "000000").cgColor])