SwiftUI

2023 年 10 月 29 日

SwiftUI 限制 Window 視窗的縮放範圍

已複製到剪貼板


使用 windowResizability 可以調整不同的 Window 縮放行為。

SwiftUI
SwiftUI

SwiftUI 設定 Window 視窗的大小縮放行為

我們可以在 App 底下對 Scene 使用 windowResizability 來決定該如何限制 Window 的最大和最小值。

例如,我們可以先設定 Scene 底下 View 寬與高的最大最小值,再把 Scene 的縮放行為設成 .contentSize 來限制使用者在縮放 Window 大小時,寬高各自只能介於 100 到 400 之間。

@main
struct Example: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
                .frame(
                    minWidth: 100, maxWidth: 400,
                    minHeight: 100, maxHeight: 400)
        }
        .windowResizability(.contentSize)
    }
}

WindowResizability 有以下三種 Type 可以設定:automatic、contentSize 和 contentMinSize。

WindowResizability 的 automatic

在沒有設定 WindowResizability 時,所有 Scene 的預設都是 automatic。在這個預設下,Settings 會使用 contentSize,而其他的 Scene 則會使用 contentMinSize。

.windowResizability(.automatic)

WindowResizability 的 contentSize

將 WindowResizability 設成 contentSize 時,就如上面的例子一樣:

  • 最小值,會符合 Scene 底下 View 所設定的最小值
  • 最大值,會符合 Scene 底下 View 所設定的最大值
.windowResizability(.contentSize)

WindowResizability 的 contentMinSize

將 WindowResizability 設成 contentMinSize 時:

  • 最小值,會符合 Scene 底下 View 所設定的最小值
  • 沒有最大值,無上限
.windowResizability(.contentMinSize)

分享文章

已複製到剪貼板

主題文章

查看 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

最新文章