SwiftUI Vision Pro 窗口宽度可以动态设置吗?

问题描述 投票:0回答:1

我尝试使用

frame
来查看:

@main
struct i2ElevatorApp: App {
    private var portraitSize : CGSize = CGSize(width: 400, height: 600)
    private var landscapeSize : CGSize = CGSize(width: 600, height: 400)
    private var landscapeSize2x : CGSize = CGSize(width: 800, height: 600)
    let sharedState = SharedState()
    var body: some Scene {
        WindowGroup {
            ContentView().environmentObject(sharedState)
        }.defaultSize(portraitSize)
        WindowGroup(id: "SubTransformationView", for: MyData.self) { data in
            if let data = data.wrappedValue {
                CardView(cardIndex: data.intValue, cardType: data.stringValue)
                    .environmentObject(sharedState)
            } else {
                EmptyView()
            }
        }
        .defaultSize(portraitSize)
        .frame(width: CGFloat(400 * (sharedState.aaa.count + 1)))

但是不起作用:

“某个场景”类型的值没有成员“框架”

swiftui vision vision-pro
1个回答
0
投票

您可以添加

.windowResizability(.contentSize)
来指示 WindowGroup 的大小及其内容

WindowGroup(id: "SubTransformationView", for: MyData.self) { data in
   if let data = data.wrappedValue {
        CardView(cardIndex: data.intValue, cardType: data.stringValue)
            .environmentObject(sharedState)
            .frame(width: CGFloat(400 * (sharedState.aaa.count + 1))) //<- here
    } else {
        EmptyView()
    }
}
.defaultSize(portraitSize)
//.frame(width: CGFloat(400 * (sharedState.aaa.count + 1)))
.windowResizability(.contentSize) //<- here
© www.soinside.com 2019 - 2024. All rights reserved.