實例方法
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 Never prefersDefaultFocus(_:in:)用法及代碼示例
- Swift Never previewDisplayName(_:)用法及代碼示例
- Swift Never previewLayout(_:)用法及代碼示例
- Swift Never previewDevice(_:)用法及代碼示例
- Swift Never previewInterfaceOrientation(_:)用法及代碼示例
- Swift Never progressViewStyle(_:)用法及代碼示例
- Swift Never projectionEffect(_:)用法及代碼示例
- Swift Never privacySensitive(_:)用法及代碼示例
- Swift Never pageCommand(value:in:step:)用法及代碼示例
- Swift Never position(x:y:)用法及代碼示例
- Swift Never position(_:)用法及代碼示例
- Swift Never popover(isPresented:attachmentAnchor:arrowEdge:content:)用法及代碼示例
- Swift Never padding(_:_:)用法及代碼示例
- Swift Never popover(item:attachmentAnchor:arrowEdge:content:)用法及代碼示例
- Swift Never padding(_:)用法及代碼示例
- 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 flipsForRightToLeftLayoutDirection(_:)用法及代碼示例
- Swift Never luminanceToAlpha()用法及代碼示例
- Swift Never accessibilityAction(_:_:)用法及代碼示例
- Swift Never badge(_:)用法及代碼示例
- Swift Never buttonStyle(_:)用法及代碼示例
注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 Never preferredColorScheme(_:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。