簡體   English   中英

如何為CAGradientLayer提供“位置”

[英]How to give “locations” to CAGradientLayer

我創建了CAGradientLayer有三種顏色,我需要給每種顏色不同的位置。 例:

Red = 0 to 50 %
Yellow = 51 to 80 %
Green = 81 to 100 %

我嘗試過給startPointendPoint但它沒有用。 在此輸入圖像描述

如果您將以下代碼放入Playground,您將獲得所需的確切輸出:

let view = UIView(frame: CGRectMake(0,0,200,100))

let layer = CAGradientLayer()
layer.frame = view.frame
layer.colors = [UIColor.greenColor().CGColor, UIColor.yellowColor().CGColor, UIColor.redColor().CGColor]
layer.locations = [0.0, 0.8, 1.0]

view.layer.addSublayer(layer)

XCPShowView("ident", view: view)

輸出:

在此輸入圖像描述

您只需將顏色定義為CGColors數組,並將相同大小的NSNumber為0.0到1.0之間的數組。

不要使用startPointendPoint - 它們用於定義層中顯示漸變的位置 - 它與百分比和顏色等沒有任何關系。


更新的Swift3版本代碼:

let view = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 100))
let layer = CAGradientLayer()
layer.frame = view.frame
layer.colors = [UIColor.green.cgColor, UIColor.yellow.cgColor, UIColor.red.cgColor]
layer.locations = [0.0, 0.8, 1.0]
view.layer.addSublayer(layer)
PlaygroundPage.current.liveView = view

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM