實(shí)戰(zhàn)需求
SwiftUI Color技巧之如何混合兩種顏色并設(shè)置過渡效果
本文價(jià)值與收獲
看完本文后,您將能夠作出下面的界面
看完本文您將掌握的技能
- 管理一組TextField
- 使用ScrollView
- 設(shè)置圓形TextField
基礎(chǔ)知識(shí)
Color
與環(huán)境有關(guān)的顏色盲憎。
宣言
@frozen struct Color
總覽
AColor是后綁定令牌:SwiftUI僅在給定環(huán)境中使用它之前才將其解析為具體值。
UIColor
存儲(chǔ)顏色數(shù)據(jù)和有時(shí)不透明度的對(duì)象啄寡。
宣言
class UIColor : NSObject
總覽
顏色對(duì)象可以通過多種方式創(chuàng)建:
UIKit提供了標(biāo)準(zhǔn)的系統(tǒng)顏色,用于將您自己的UI對(duì)象中的顏色與UIKit提供的顏色進(jìn)行匹配讯檐。您可以復(fù)制這些顏色,而無需了解顏色的基本表示形式染服。請(qǐng)參閱UI元素顏色别洪。
UIKit提供了標(biāo)準(zhǔn)顏色的定義,例如紅色柳刮,橙色挖垛,黃色等。請(qǐng)參閱標(biāo)準(zhǔn)顏色秉颗。
您可以在Core Graphics顏色空間中創(chuàng)建自定義顏色痢毒。請(qǐng)參見從組件值創(chuàng)建顏色。
您可以從另一個(gè)對(duì)象創(chuàng)建顏色對(duì)象蚕甥,例如另一個(gè)UIColor對(duì)象哪替,一種顏色的Core Graphics表示形式或Core Image顏色。請(qǐng)參見從另一個(gè)顏色對(duì)象創(chuàng)建顏色梢灭。
您可以從UIImage對(duì)象創(chuàng)建顏色并將其用于繪制重復(fù)圖案夷家。請(qǐng)參見創(chuàng)建基于圖案的顏色。
使用UIColor對(duì)象的最常見方法是將其提供給UIKit中的其他對(duì)象敏释。例如库快,UIView該類(及其子類)包括背景和淡色,以影響它們?cè)谄聊簧系睦L制方式钥顽。下面的代碼示例設(shè)置視圖的背景和色調(diào)顏色义屏。
backgroundView.backgroundColor = UIColor.systemGray
backgroundView.tintColor = UIColor.systemBlue
在執(zhí)行自定義繪圖時(shí),UIColor對(duì)象提供設(shè)置當(dāng)前圖形上下文的填充或筆觸顏色的方法蜂大。以下代碼示例顯示了視圖內(nèi)自定義繪圖的簡(jiǎn)單示例闽铐。
class CircleView: UIView {
override func draw(_ rect: CGRect) {
let ovalBounds = self.bounds.insetBy(dx: 10, dy: 10)
let oval = UIBezierPath(ovalIn: ovalBounds)
let brightRed = UIColor(displayP3Red: 1.0, green: 0.0, blue: 0.0, alpha: 1.0)
brightRed.setFill()
oval.fill()
}
}
有關(guān)功能的完整列表,請(qǐng)參見將顏色應(yīng)用于繪圖環(huán)境奶浦。
了解色彩空間的使用
UIColor對(duì)象通常存儲(chǔ)它的顏色值作為核心圖形的顏色(CGColor)是一個(gè)核心圖形顏色空間()兄墅。有一些返回基礎(chǔ)顏色數(shù)據(jù)的方法和屬性,這些方法和屬性在獲取顏色信息中進(jìn)行了描述澳叉。創(chuàng)建自定義顏色時(shí)隙咸,基礎(chǔ)顏色空間和每個(gè)顏色組件的值范圍會(huì)根據(jù)iOS版本而有所不同。CGColorSpace
這些設(shè)備色彩空間與sRGB色彩空間的顯示特性緊密對(duì)應(yīng)成洗。這些色空間中分量的值的范圍是到五督。創(chuàng)建顏色時(shí),顏色對(duì)象會(huì)鉗位值以確保它們適合此范圍瓶殃。0.01.0
使用自定義顏色時(shí)充包,請(qǐng)使用擴(kuò)展的顏色空間來存儲(chǔ)您的顏色值。當(dāng)您需要擔(dān)心在特定顏色空間中盡可能接近地表示該顏色時(shí)遥椿,請(qǐng)將顏色從擴(kuò)展顏色空間轉(zhuǎn)換為目標(biāo)顏色空間基矮。
實(shí)戰(zhàn)代碼
1淆储、主界面