【问题标题】:ScrollView doesn't scroll properly (bounces) in combination with Geometry Reader与 Geometry Reader 结合使用时,ScrollView 无法正确滚动(反弹)
【发布时间】:2020-11-11 13:47:15
【问题描述】:

我已经在这里查看了答案 (ScrollView Doesn't Scroll with Geometry Reader as Child),我猜这很相似,但我无法弄清楚。

我的目标是显示相同大小(二次)的图像。

这是我的观点:


struct MyGeoView: View {
    
    let icons = ["bed.double.fill","tram.fill","tv.music.note.fill","hare.fill", "person", "clock", "plus", "trash", "home", "arrow", "pencil", "scribble", "folder", "folder.circle", "trash.circle", "paperplane"]
    
    var body: some View {
        
        GeometryReader{ geo in
            ScrollView{
                GeometryReader{ geo in
                    LazyVGrid(columns: Array(repeating: GridItem(.flexible()), count: 3), spacing: 3 ){
                        ForEach(icons, id: \.self){ post in
                            Image(systemName: post)
                                .frame(width: geo.size.width/3, height: geo.size.width/3)
                                .background(Color.pink)
                                .foregroundColor(.white)
                        }
                    }
                }
            }
        }
    }
    
}

不幸的是,它没有正确滚动(反弹)并且总是回到顶部。你有什么想法吗?

谢谢!

【问题讨论】:

    标签: swiftui scrollview geometryreader


    【解决方案1】:

    你只需要一个GeometryReader,外部一个。

    这里是更正的代码。使用 Xcode 12.1 / iOS 14.1 测试

    var body: some View {
        GeometryReader{ geo in
            ScrollView{
                LazyVGrid(columns: Array(repeating: GridItem(.flexible()), count: 3), spacing: 3 ){
                    ForEach(icons, id: \.self){ post in
                        Image(systemName: post)
                            .frame(width: geo.size.width/3, height: geo.size.width/3)
                            .background(Color.pink)
                            .foregroundColor(.white)
                    }
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-12
      • 1970-01-01
      • 2016-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-12
      相关资源
      最近更新 更多