iOS
CAGradientLayer
Ricerca…
Sintassi
- CAGradientLayer () // Restituisce un oggetto CALayer inizializzato.
- CAGradientLayer (layer: layer) // Override per copiare o inizializzare i campi personalizzati del layer specificato.
Parametri
Parametro | Dettagli |
---|---|
colore | Una serie di oggetti CGColorRef che definiscono il colore di ciascun gradiente. Animatable. |
posizioni | Una matrice opzionale di oggetti NSNumber che definisce la posizione di ciascun arresto del gradiente. Animatable. |
endPoint | Il punto finale del gradiente quando disegnato nello spazio delle coordinate del livello. Animatable. |
punto di partenza | Il punto iniziale del gradiente quando viene disegnato nello spazio delle coordinate del livello. Animatable. |
genere | Stile del gradiente disegnato dal livello. Il valore predefinito è kCAGradientLayerAxial . |
Osservazioni
- Utilizzare
startPoint
eendPoint
per modificare l'orientamento diCAGradientLayer
. - Usa le
locations
per influenzare la diffusione / le posizioni dei colori.
Creazione di un CAGradientLayer
// View to hold the CAGradientLayer.
let view: UIView = UIView(frame: CGRect(x: 0, y: 0, width: 320, height: 320))
// Initialize gradient layer.
let gradientLayer: CAGradientLayer = CAGradientLayer()
// Set frame of gradient layer.
gradientLayer.frame = view.bounds
// Color at the top of the gradient.
let topColor: CGColor = UIColor.red.cgColor
// Color at the bottom of the gradient.
let bottomColor: CGColor = UIColor.yellow.cgColor
// Set colors.
gradientLayer.colors = [topColor, bottomColor]
// Set locations of the colors.
gradientLayer.locations = [0.0, 1.0]
// Insert gradient layer into view's layer heirarchy.
view.layer.insertSublayer(gradientLayer, at: 0)
Risultato:
Creazione di un CGGradientLayer con più colori.
// View to hold the CAGradientLayer.
let view: UIView = UIView(frame: CGRect(x: 0, y: 0, width: 320, height: 320))
// Initialize gradient layer.
let gradientLayer: CAGradientLayer = CAGradientLayer()
// Set frame of gradient layer.
gradientLayer.frame = view.bounds
// Color at the top of the gradient.
let topColor: CGColor = UIColor.blue.cgColor
// Color at the middle of the gradient.
let middleColor: CGColor = UIColor.yellow.cgColor
// Color at the bottom of the gradient.
let bottomColor: CGColor = UIColor.green.cgColor
// Set colors.
gradientLayer.colors = [topColor, middleColor, bottomColor]
// Set locations of the colors.
gradientLayer.locations = [0.0, 0.5, 1.0]
// Insert gradient layer into view's layer heirarchy.
view.layer.insertSublayer(gradientLayer, at: 0)
Risultato:
Creazione di un CAGradientLayer orizzontale.
// View to hold the CAGradientLayer.
let view: UIView = UIView(frame: CGRect(x: 0, y: 0, width: 320, height: 320))
// Initialize gradient layer.
let gradientLayer: CAGradientLayer = CAGradientLayer()
// Set frame of gradient layer.
gradientLayer.frame = view.bounds
// Color at the top of the gradient.
let topColor: CGColor = UIColor.redColor().CGColor
// Color at the bottom of the gradient.
let bottomColor: CGColor = UIColor.yellowColor().CGColor
// Set colors.
gradientLayer.colors = [topColor, bottomColor]
// Set start point.
gradientLayer.startPoint = CGPoint(x: 0.0, y: 0.5)
// Set end point.
gradientLayer.endPoint = CGPoint(x: 1.0, y: 0.5)
// Insert gradient layer into view's layer heirarchy.
view.layer.insertSublayer(gradientLayer, atIndex: 0)
Risultato:
Creazione di un CAGradientLayer orizzontale con più colori.
// View to hold the CAGradientLayer.
let view: UIView = UIView(frame: CGRect(x: 0, y: 0, width: 320, height: 320))
// Initialize gradient layer.
let gradientLayer: CAGradientLayer = CAGradientLayer()
// Set frame of gradient layer.
gradientLayer.frame = view.bounds
// Color at the top of the gradient.
let topColor: CGColor = UIColor.greenColor().CGColor
// Color at the middle of the gradient.
let middleColor: CGColor = UIColor.blueColor().CGColor
// Color at the bottom of the gradient.
let bottomColor: CGColor = UIColor.blackColor().CGColor
// Set colors.
gradientLayer.colors = [topColor, middleColor, bottomColor]
// Set start point.
gradientLayer.startPoint = CGPoint(x: 0.0, y: 0.5)
// Set end point.
gradientLayer.endPoint = CGPoint(x: 1.0, y: 0.5)
// Insert gradient layer into view's layer heirarchy.
view.layer.insertSublayer(gradientLayer, atIndex: 0)
Risultato:
Animazione di un cambiamento di colore in CAGradientLayer.
// Get the current colors of the gradient.
let oldColors = self.gradientLayer.colors
// Define the new colors for the gradient.
let newColors = [UIColor.red.cgColor, UIColor.yellow.cgColor]
// Set the new colors of the gradient.
self.gradientLayer.colors = newColors
// Initialize new animation for changing the colors of the gradient.
let animation: CABasicAnimation = CABasicAnimation(keyPath: "colors")
// Set current color value.
animation.fromValue = oldColors
// Set new color value.
animation.toValue = newColors
// Set duration of animation.
animation.duration = 0.3
// Set animation to remove once its completed.
animation.isRemovedOnCompletion = true
// Set receiver to remain visible in its final state when the animation is completed.
animation.fillMode = kCAFillModeForwards
// Set linear pacing, which causes an animation to occur evenly over its duration.
animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear)
// Set delegate of animation.
animation.delegate = self
// Add the animation.
self.gradientLayer.addAnimation(animation, forKey: "animateGradientColorChange")
Risultato:
Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow