在macOS中,关于视图大小的Xcode版本14.1正在经历一次新的更改,在旧版本中,如果我给出一个框架大小或使用fixedSize修饰符,视图将保持该大小,但对于14.1,即使使用框架或fixedSize修饰符,该视图也可能会被扩展,这不是我所期望的。例如,我举了一个例子来显示问题,当我将大小更新为200.0时,视图/窗口保持在更大的大小,我希望它会缩小到更小的大小,那么如何解决这个问题呢?
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()
}
}发布于 2022-11-06 18:01:03
致谢:
https://developer.apple.com/forums/thread/708177?answerId=717217022#717217022的
方法:
.windowResizability(.contentSize)
windowResizability一起使用以下内容之一:如果要根据内容大小设置大小,请使用.frame(width:height:)
硬编码框架,然后直接设置.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)
}
}https://stackoverflow.com/questions/74332152
复制相似问题