首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在SwiftUI中修复mac中的视图大小?

如何在SwiftUI中修复mac中的视图大小?
EN

Stack Overflow用户
提问于 2022-11-05 23:14:15
回答 1查看 69关注 0票数 3

在macOS中,关于视图大小的Xcode版本14.1正在经历一次新的更改,在旧版本中,如果我给出一个框架大小或使用fixedSize修饰符,视图将保持该大小,但对于14.1,即使使用框架或fixedSize修饰符,该视图也可能会被扩展,这不是我所期望的。例如,我举了一个例子来显示问题,当我将大小更新为200.0时,视图/窗口保持在更大的大小,我希望它会缩小到更小的大小,那么如何解决这个问题呢?

代码语言:javascript
复制
 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()
    }
}
EN

回答 1

Stack Overflow用户

发布于 2022-11-06 18:01:03

致谢:

https://developer.apple.com/forums/thread/708177?answerId=717217022#717217022

  • 信贷

方法:

.windowResizability(.contentSize)

  • Along

  • windowResizability一起使用以下内容之一:如果要根据内容大小设置大小,请使用.frame(width:height:)

硬编码框架,然后直接设置.frame(width:height:)

代码

代码语言:javascript
复制
@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)
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74332152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档