SwiftUI

2023 年 11 月 19 日

SwiftUI 設定 Window 視窗的顯示樣式

已複製到剪貼板


使用 windowStyle 可以設定不同的 Window 顯示樣式。

WindowStyle 概覽

當我們沒特別設定 WindowStyle 時,預設就是 DefaultWindowStyle,等同於用 automatic 指定。

@main
struct Example: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
        .windowStyle(.automatic)
    }
}

PlainWindowStyle(.plain

plain 用於設定 visinoOS 的 Window,可以把 Window 預設的 glass background 毛玻璃底移除,當我們想客製不同的玻璃背景時,就可以使用這個 WindowStyle。

.windowStyle(.plain)
SwiftUI 在 visionOS 上,windowStyle 為 PlainWindowStyle 的樣式
SwiftUI 在 visionOS 上,windowStyle 為 PlainWindowStyle 的樣式

圖中可以看到有小小的「Hello, World!」字樣,但卻沒有毛玻璃底的視窗,因為被 PlainWindowStyle 移掉了。

VolumetricWindowStyle(.volumetric

volumetric 用於設定 visinoOS 的 Window,可以用來建 3D 的 Window,用於呈現 3D 物件,具長寬深,但不是無限的。如果想要實作的是 immersive experiences,應該要使用 immersiveSpace,而非 Window。

.windowStyle(.volumetric)
SwiftUI 在 visionOS 上,windowStyle 為 VolumetricWindowStyle 的樣式
SwiftUI 在 visionOS 上,windowStyle 為 VolumetricWindowStyle 的樣式

HiddenTitleBarWindowStyle(.hiddenTitleBar

hiddenTitleBar 用於設定 macOS 的 Window,可以把 Window 的 title 與整條 titlebar 隱藏,讓視窗擁有更多的空間顯示內容。

.windowStyle(.hiddenTitleBar)
SwiftUI 在 visionOS 上,windowStyle 為 HiddenTitleBarWindowStyle 的樣式
SwiftUI 在 visionOS 上,windowStyle 為 HiddenTitleBarWindowStyle 的樣式

TitleBarWindowStyle(.titleBar

titleBar 用於設定 macOS 的 Window,可以顯示 Window 的 title 與 titlebar,不過一般 Window 預設就會顯示 titlebar 了。

.windowStyle(.titleBar)
SwiftUI 在 visionOS 上,windowStyle 為 TitleBarWindowStyle 的樣式
SwiftUI 在 visionOS 上,windowStyle 為 TitleBarWindowStyle 的樣式

分享文章

已複製到剪貼板

主題文章

查看 SwiftUI

超級感謝

關於 XcodeProject

XcodeProject 創立於 2023,致力於協助開發者探索 Apple 的創新世界,學習在 iOS、iPadOS、macOS、tvOS、visionOS 與 watchOS 上開發 App,發現眾多技術與框架,讓開發者獲得更多能力。


Contacts

Ricky Chuang

XcodeProject

RickyChuang.xcodeproj@gmail.com

XcodeProject 聯絡

contact.xcodeproj@gmail.com

最新文章