我正在学习Swift和iOS App开发的基础知识。我想在我的应用程序中创建一个渐变页面。我在网上找到了这个代码:
let gradient = CAGradientLayer() // Line 1
gradient.frame = view.bounds // Line 2
gradient.colors = [UIColor.red.cgColor, UIColor.blue.cgColor] // Line 3
view.layer.addSublayer(gradient) // Line 4
上面的代码是什么意思?我正在使用Swift 4。
我理解了第3行。它决定了渐变中的颜色和顺序。请解释其余的代码。
这里有一些你可以玩的游乐场代码:
//: Playground - noun: a place where people can play
import UIKit
import XCTest
import PlaygroundSupport
PlaygroundPage.current.needsIndefiniteExecution = true
// this is the UIView we're going to use.
let view = UIView(frame: CGRect(x: 0, y: 0, width: 500, height: 500))
// this is making a CoreAnimation gradient layer
let gradient = CAGradientLayer() // Line 1
// this is setting the dimensions of the gradient to the
// same as the view that will contain it
gradient.frame = view.bounds // Line 2
// this is setting the gradient from and to colors
gradient.colors = [UIColor.red.cgColor, UIColor.blue.cgColor] // Line 3
// this is adding the gradient to the view hierarchy so you can see it
view.layer.addSublayer(gradient) // Line 4
PlaygroundPage.current.liveView = view
输出是:
第一行创建一个CAGradientLayer
对象,它封装了渐变属性:
let gradient = CAGradientLayer() // Line 1
第二行(给矩形渐变将显示在父视图中)将视图框架分配给将保持它的渐变框架:
gradient.frame = view.bounds // Line 2
frame是一个带有x,y,width,height的rect
最后一行
view.layer.addSublayer(gradient) // Line 4
在父视图的图层上方添加渐变图层,因此渐变的内容显示在视图上方,请注意,如果此行被注释,您将无法在动态创建渐变时看到渐变。