如何在iOS中为视图添加渐变?

时间:2018-02-16 18:06:51

标签: ios swift cagradientlayer

我正在学习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行。它决定了渐变中的颜色和顺序。请解释其余的代码。

2 个答案:

答案 0 :(得分:2)

第一行创建一个CAGradientLayer对象,它封装了渐变属性:

let gradient = CAGradientLayer() // Line 1

第二行(给矩形的渐变将显示在父视图中)将视图框分配给将保持它的渐变的框架:

gradient.frame = view.bounds // Line 2

框架是一个带有x,y,宽度,高度的矩形

最后一行

view.layer.addSublayer(gradient) // Line 4

在父视图的图层上方添加渐变图层,因此渐变的内容显示在视图上方,请注意,如果此行被注释,您将无法看到渐变时创建的渐变。 / p>

答案 1 :(得分:2)

这里有一些你可以玩的游乐场代码:

//: 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

输出结果为:

gradient in a playground