实例方法
preferred
preferredColorScheme(_:)
设置此演示文稿的首选配色方案。
声明
func preferredColorScheme(_ colorScheme: ColorScheme?) -> some View
返回值
设置配色方案的视图。
参数
colorScheme
此视图的首选配色方案。
详述
使用带有此修饰符的ColorScheme
中的值之一为最近的封闭演示文稿(如弹出框、工作表或窗口)设置首选配色方案。您设置的值会覆盖用户对该演示文稿的暗模式选择。在下面的示例中,Toggle
控制 isDarkMode
状态变量,该变量反过来控制包含切换的工作表的配色方案:
@State private var isPresented = false
@State private var isDarkMode = true
var body: some View {
Button("Show Sheet") {
isPresented = true
}
.sheet(isPresented: $isPresented) {
List {
Toggle("Dark Mode", isOn: $isDarkMode)
}
.preferredColorScheme(isDarkMode ? .dark : .light)
}
}
如果您将修改器应用于工作表中的任何视图(在本例中为 List
和 Toggle
),则您设置的值会通过视图层次结构向上传播到封闭的演示文稿,或者直到另一个配色方案层次结构中较高的修饰符会覆盖它。您设置的值还会向下传递到封闭演示文稿的所有子视图。
此修改器的常见用途是创建具有明暗外观的同一视图的side-by-side 预览:
struct MyView_Previews: PreviewProvider {
static var previews: some View {
MyView().preferredColorScheme(.light)
MyView().preferredColorScheme(.dark)
}
}
如果您需要检测当前应用于视图的配色方案,请阅读 EnvironmentValues/colorScheme
环境值:
@Environment(\.colorScheme) private var colorScheme
var body: some View {
Text(colorScheme == .dark ? "Dark" : "Light")
}
可用版本
iOS 13.0+, iPadOS 13.0+, macOS 11.0+, Mac Catalyst 13.0+, tvOS 13.0+, watchOS 6.0+
相关用法
- Swift Optional prefersDefaultFocus(_:in:)用法及代码示例
- Swift Optional previewDevice(_:)用法及代码示例
- Swift Optional previewInterfaceOrientation(_:)用法及代码示例
- Swift Optional previewLayout(_:)用法及代码示例
- Swift Optional previewDisplayName(_:)用法及代码示例
- Swift Optional projectionEffect(_:)用法及代码示例
- Swift Optional privacySensitive(_:)用法及代码示例
- Swift Optional progressViewStyle(_:)用法及代码示例
- Swift Optional popover(isPresented:attachmentAnchor:arrowEdge:content:)用法及代码示例
- Swift Optional pageCommand(value:in:step:)用法及代码示例
- Swift Optional padding(_:_:)用法及代码示例
- Swift Optional popover(item:attachmentAnchor:arrowEdge:content:)用法及代码示例
- Swift Optional padding(_:)用法及代码示例
- Swift Optional position(_:)用法及代码示例
- Swift Optional position(x:y:)用法及代码示例
- Swift Optional symbolVariant(_:)用法及代码示例
- Swift Optional mask(alignment:_:)用法及代码示例
- Swift Optional listSectionSeparatorTint(_:edges:)用法及代码示例
- Swift Optional badge(_:)用法及代码示例
- Swift Optional fullScreenCover(isPresented:onDismiss:content:)用法及代码示例
- Swift Optional keyboardType(_:)用法及代码示例
- Swift Optional clipShape(_:style:)用法及代码示例
- Swift Optional background(_:ignoresSafeAreaEdges:)用法及代码示例
- Swift Optional saturation(_:)用法及代码示例
- Swift Optional focusSection()用法及代码示例
注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Optional preferredColorScheme(_:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。