foregroundStyle(_:)
聲明
func foregroundStyle<S>(_ style: S) -> some View where S : ShapeStyle
返回值
使用給定前景樣式的視圖。
參數
style
填充前景元素時使用的顏色或圖案。要指示特定值,請使用
Color
或ShapeStyle/image(_:sourceRect:scale:)
或其中一種漸變類型,例如ShapeStyle/linearGradient(colors:startPoint:endPoint:)
。要設置與包含視圖的樣式相關的樣式,請使用其中一種語義樣式,例如ShapeStyle/primary
。
詳述
使用此方法為前景內容設置樣式,例如文本、形狀和模板圖像(包括符號):
HStack {
Image(systemName: "triangle.fill")
Text("Hello, world!")
RoundedRectangle(cornerRadius: 5)
.frame(width: 40, height: 20)
}
.foregroundStyle(.teal)
上麵的示例創建了一行 ShapeStyle/teal
前景元素:
您可以使用任何符合ShapeStyle
協議的樣式,如上例中的ShapeStyle/teal
顏色,或下圖所示的ShapeStyle/linearGradient(colors:startPoint:endPoint:)
漸變:
Text("Gradient Text")
.font(.largeTitle)
.foregroundStyle(
.linearGradient(
colors: [.yellow, .blue],
startPoint: .top,
endPoint: .bottom
)
)
SwiftUI 為給定樣式創建 context-dependent 渲染。例如,您從資產目錄加載的 Color
可以具有不同的明暗外觀,而某些樣式也會因平台而異。
像ShapeStyle/secondary
這樣的分層前景樣式不會強加自己的樣式,而是修改其他樣式。特別是,它們將當前前景樣式的主要級別修改為層次樣式名稱給出的程度。要查找要修改的當前前景樣式,SwiftUI 會查找您使用 foregroundStyle(_:)
或 View/foregroundColor(_:)
修飾符應用的最裏麵的包含樣式。如果您沒有指定樣式,SwiftUI 將使用默認的前景樣式,如下例所示:
VStack(alignment: .leading) {
Label("Primary", systemImage: "1.square.fill")
Label("Secondary", systemImage: "2.square.fill")
.foregroundStyle(.secondary)
}
如果在封閉的 VStack
上添加前景樣式,則分層樣式會相應響應:
VStack(alignment: .leading) {
Label("Primary", systemImage: "1.square.fill")
Label("Secondary", systemImage: "2.square.fill")
.foregroundStyle(.secondary)
}
.foregroundStyle(.blue)
當您將自定義樣式應用於視圖時,視圖會禁用該視圖或其任何子視圖中前景元素的活力效果,否則它會通過添加背景材料獲得 - 例如,使用 View/background(_:ignoresSafeAreaEdges:)
修飾符。但是,應用於默認前景的分層樣式不會禁用活力。
可用版本
相關用法
- Swift Never focused(_:)用法及代碼示例
- Swift Never focusSection()用法及代碼示例
- Swift Never font(_:)用法及代碼示例
- Swift Never focused(_:equals:)用法及代碼示例
- Swift Never focusedSceneValue(_:_:)用法及代碼示例
- Swift Never flipsForRightToLeftLayoutDirection(_:)用法及代碼示例
- Swift Never fixedSize()用法及代碼示例
- Swift Never fullScreenCover(item:onDismiss:content:)用法及代碼示例
- Swift Never fullScreenCover(isPresented:onDismiss:content:)用法及代碼示例
- Swift Never fixedSize(horizontal:vertical:)用法及代碼示例
- Swift Never frame(width:height:alignment:)用法及代碼示例
- Swift Never pageCommand(value:in:step:)用法及代碼示例
- Swift Never opacity(_:)用法及代碼示例
- Swift Never colorMultiply(_:)用法及代碼示例
- Swift Never accessibilityAction(action:label:)用法及代碼示例
- Swift Never alert(isPresented:error:actions:message:)用法及代碼示例
- Swift Never confirmationDialog(_:isPresented:titleVisibility:actions:)用法及代碼示例
- Swift Never position(x:y:)用法及代碼示例
- Swift Never position(_:)用法及代碼示例
- Swift Never luminanceToAlpha()用法及代碼示例
- Swift Never accessibilityAction(_:_:)用法及代碼示例
- Swift Never previewDisplayName(_:)用法及代碼示例
- Swift Never badge(_:)用法及代碼示例
- Swift Never progressViewStyle(_:)用法及代碼示例
- Swift Never buttonStyle(_:)用法及代碼示例
注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 Never foregroundStyle(_:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。