gpt4 book ai didi

swift - 如何在 SwiftUI 中修复 mac 中的 View 大小?

转载 作者:行者123 更新时间:2023-12-05 03:17:06 25 4
gpt4 key购买 nike

我在 Xcode 14.1 版中遇到了关于 macOS 中 View 大小的新更改,在旧版本中,如果我提供框架大小或使用 fixedSize 修饰符, View 将保持该大小,但在 14.1 中我看到该 View 可以即使我使用 frame 或 fixedSize 修饰符,它也会扩展,这不是我所期望的。例如,我举了一个例子来说明这个问题,当我将尺寸更新为 200.0 时, View /窗口保持更大的尺寸,我希望它会自行缩小到更小的尺寸,那么我该如何解决这个问题?

 struct ContentView: View {

@State private var sizeOfWindow: CGFloat = 400.0

var body: some View {
VStack {

Image(systemName: "globe")
.imageScale(.large)
.foregroundColor(.accentColor)

Text("Hello, world!")

Button("update", action: {

if (sizeOfWindow == 200.0) { sizeOfWindow = 400.0 }
else { sizeOfWindow = 200.0 }

print(sizeOfWindow)

})
}
.frame(width: sizeOfWindow, height: sizeOfWindow)
.fixedSize()
}
}

最佳答案

来源:

方法:

  • 使用.windowResizability(.contentSize)
  • windowResizability 一起使用以下之一:
    • 如果您想根据内容大小设置大小,请使用 fixedSize()
    • 如果你想硬编码框架那么直接设置.frame(width:height:)

代码

@main
struct DemoApp: App {
var body: some Scene {
WindowGroup {
ContentView()
.frame(width: 200, height: 200) //or use fixed size and rely on content
}
.windowResizability(.contentSize)
}
}

关于swift - 如何在 SwiftUI 中修复 mac 中的 View 大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74332152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com