首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SwiftUI GeometryReader引起的大破坏

SwiftUI GeometryReader引起的大破坏
EN

Stack Overflow用户
提问于 2022-07-02 16:08:54
回答 1查看 153关注 0票数 1

我有以下看法:

代码语言:javascript
复制
var body: some View {
    ScrollView {
        VStack {
            HStack {
                Text("Something")
                Text("Something")
            }
            GeometryReader { geo in
                VStack {
                    CustomView(param: geo.size.width * 0.3) // I need these views to know the size so they can align internal components
                    CustomView(param: geo.size.width * 0.3)
                    CustomView(param: geo.size.width * 0.3)
                }.frame(width: geo.size.width, height: geo.size.height) // Tried also without setting height here
            }
            Button(action: {
                print("Hey")
            }) {
                Text("Push me")
            }
        }.padding()
    }
}

上述结果导致包含GeometryReader的部分与上面的视图重叠,最后的按钮位于GeometryReader的顶部。如果我将GeometryReader包装在另一个VStack中,结果也是相似的。

有办法纠正这种行为吗?我需要GeometryReader是因为代码注释中解释的原因(或者可能是等效的解决方案,因为我需要以一种特定的方式对元素的内部内容进行大小调整)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-02 16:19:58

GeometryReader移出ScrollView,就像

代码语言:javascript
复制
var body: some View {
  GeometryReader { geo in     // << here !!
    ScrollView {
        VStack {
            HStack {
                Text("Something")
                Text("Something")
            }
            VStack {
                CustomView(param: geo.size.width * 0.3)
                CustomView(param: geo.size.width * 0.3)
                CustomView(param: geo.size.width * 0.3)
            }.frame(width: geo.size.width, height: geo.size.height)

            Button(action: {
                print("Hey")
            }) {
                Text("Push me")
            }
        }.padding()
    }
  }
}

注: GeometryReader在ScrollView中不工作,因为ScrollView没有自己的几何学,它试图从内容中读取几何图形,所以是循环的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72840559

复制
相关文章

相似问题

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