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(_:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。