如何在iOS中为视图添加渐变? [关闭]

问题描述 投票:-3回答:2

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

ios swift cagradientlayer
2个回答
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


1
投票

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

let gradient = CAGradientLayer() // Line 1

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

gradient.frame = view.bounds // Line 2

frame是一个带有x,y,width,height的rect

最后一行

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

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

© www.soinside.com 2019 - 2024. All rights reserved.