如何在 iOS Swift 應用中為背景檢視應用漸變?
在 iOS 中,有一個名為 CAGradientLayer 的類可以將漸變顏色應用於檢視。在本文中,我們將瞭解如何使用 CAGradientLayer 類將漸變應用於 iOS 中檢視的背景。CAGradientLayer 類提供了不同的屬性,例如顏色、位置、點、框架等。我們將使用它們將漸變應用於檢視。最後,我們將使用 insertSublayer 方法將漸變層新增到父檢視。
要將漸變應用於 iOS Swift 應用的背景檢視,您可以按照以下步驟操作:
步驟 1 - 建立一個新的漸變層
let gradientLayer = CAGradientLayer()
使用 CAGradientLayer,您可以輕鬆建立物件以將漸變應用於背景
步驟 2 - 設定漸變層的顏色和位置:
gradientLayer.colors = [UIColor.blue.cgColor, UIColor.red.cgColor] gradientLayer.locations = [0.0, 1.0]
CAGradientLayer 提供了一些屬性,用於使用約束控制繪圖。可以將 UIColor 型別的陣列傳遞給“colors”屬性。您可以根據需要指定多個顏色。
另一個名為“location”的屬性提供了繪製漸變顏色的位置。漸變位置也可以使用數字陣列定義。漸變位置的範圍將為 0 到 1。根據您的需要,您可以將位置劃分為 N 個數字。
步驟 3 - 設定漸變層的起始點和結束點
gradientLayer.startPoint = CGPoint(x: 0.0, y: 0.0) gradientLayer.endPoint = CGPoint(x: 1.0, y: 1.0)
起始點和結束點定義漸變的方向。在本例中,我們將起始點設定為檢視的左上角 (0.0, 0.0),並將結束點設定為檢視的右下角 (1.0, 1.0),因此漸變將從左上角到右下角。
步驟 4 - 將框架設定為圖層
gradientLayer.frame = view.frame
為了使漸變可見,您必須提供其框架。
步驟 5 - 將漸變層作為子層新增到背景檢視
view.layer.insertSublayer(gradientLayer, at: 0)
insertSublayer(_:at:) 方法是 iOS 中 CALayer 類的**一個方法**。它用於在指定索引處將子層新增到父層。
當您在父層上執行此方法時,提供的子層將在指定索引處作為子層插入。如果索引大於或等於現有子層的數量,則新的子層將附加到子層陣列的末尾。
以下是將漸變應用於檢視的完整程式碼片段
示例
import UIKit class TestController: UIViewController { override func viewDidLoad() { super.viewDidLoad() initialSetup() } private func initialSetup() { // basic setup view.backgroundColor = .white navigationItem.title = "Gradient View" // Create a new gradient layer let gradientLayer = CAGradientLayer() // Set the colors and locations for the gradient layer gradientLayer.colors = [UIColor.blue.cgColor, UIColor.red.cgColor] gradientLayer.locations = [0.0, 1.0] // Set the start and end points for the gradient layer gradientLayer.startPoint = CGPoint(x: 0.0, y: 0.0) gradientLayer.endPoint = CGPoint(x: 1.0, y: 1.0) // Set the frame to the layer gradientLayer.frame = view.frame // Add the gradient layer as a sublayer to the background view view.layer.insertSublayer(gradientLayer, at: 0) } }
輸出

如您所見,在本例中,漸變層已應用於控制器的檢視。它從檢視的左上角到右下角對角線放置。我們使用 colors 屬性應用漸變顏色。
以下是如何應用多個顏色的另一個示例
示例
import UIKit class TestController: UIViewController { override func viewDidLoad() { super.viewDidLoad() initialSetup() } private func initialSetup() { // basic setup view.backgroundColor = .white navigationItem.title = "Gradient View" // Create a new gradient layer let gradientLayer = CAGradientLayer() // Set the colors and locations for the gradient layer gradientLayer.colors = [UIColor.green.cgColor, UIColor.yellow.cgColor, UIColor.red.cgColor] gradientLayer.locations = [0.0, 0.5, 1.0] // Set the start and end points for the gradient layer gradientLayer.startPoint = CGPoint(x: 0.0, y: 0.0) gradientLayer.endPoint = CGPoint(x: 0.0, y: 1.0) // Set the frame to the layer gradientLayer.frame = view.frame // Add the gradient layer as a sublayer to the background view view.layer.insertSublayer(gradientLayer, at: 0) } }
輸出

在上面的示例中,您可以看到我們應用了三種不同的顏色和自定義位置。在本例中,我們正在從上到下應用線性漸變。
推薦方法
例如,您必須在 iOS 應用中將漸變應用於多個檢視。為了最大程度地減少程式碼重複,始終建議建立 UIView 的擴充套件。以下是如何建立擴充套件的示例:
extension UIView { func addGradient(_ colors: [UIColor], locations: [NSNumber], frame: CGRect = .zero) { // Create a new gradient layer let gradientLayer = CAGradientLayer() // Set the colors and locations for the gradient layer gradientLayer.colors = colors.map{ $0.cgColor } gradientLayer.locations = locations // Set the start and end points for the gradient layer gradientLayer.startPoint = CGPoint(x: 0.0, y: 0.0) gradientLayer.endPoint = CGPoint(x: 0.0, y: 1.0) // Set the frame to the layer gradientLayer.frame = frame // Add the gradient layer as a sublayer to the background view layer.insertSublayer(gradientLayer, at: 0) } }
以下是如何使用上述擴充套件的程式碼
view.addGradient([UIColor.green, UIColor.yellow, UIColor.red], locations: [0.0, 0.5, 1.0],frame: view.frame)
結論
要將漸變新增到 iOS Swift 專案的背景檢視,請使用 Core Animation 的 CAGradientLayer 類。您可以執行以下基本操作:
CAGradientLayer 用於建立一個新的漸變層 ()。
使用 colors 和 locations 屬性自定義漸變層的顏色和位置。
startPoint 和 endPoint 屬性用於提供漸變層的起始位置和結束位置。
startPoint 和 endPoint 屬性用於提供漸變層的起始位置和結束位置。