首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ZStack上的ScrollView

ZStack上的ScrollView
EN

Stack Overflow用户
提问于 2021-03-26 16:32:27
回答 2查看 31关注 0票数 0

考虑以下示例:

代码语言:javascript
复制
ZStack{
    VStack{
        ForEach(0..100) { elem in
            Button(action: {"do something..."}, label: Text("\(elem)"))
        }
    }

    ScrollView {
        ForEach(0..<100) { elem in 
            Text("\(elem)")
        }    
    }
}

当我把一个ScrollView放在按钮上面时,ScrollView就不能再滚动了。仅在ScrollView下没有按钮的位置。有没有可能“停用”ZStack底层?我已经尝试过.disable(),但这并没有什么帮助。这不是一个真实的例子。ScrollView将显示为弹出窗口,因此我需要知道如何解决此用例。

EN

回答 2

Stack Overflow用户

发布于 2021-03-26 17:08:03

只需给滚动视图一些高度即可。否则,scrollView的高度会变得比屏幕的高度大,所有的元素都在里面,所以它变得不可滚动,因为没有什么可以滚动的。

代码语言:javascript
复制
struct ContentView: View { 
let fullHeight : CGFloat = UIScreen.main.bounds.height
var body: some View {
    ZStack{
        VStack{
            ForEach(0..<100) { elem in
                Button(action: {
                        let _ = print("do something...")
                }, label:{ Text("Buttons \(elem)")  }
                )
            }
        }
        ScrollView {
            ForEach(0..<100) { elem in
                Text("\(elem)")
            }
        } .frame( height: fullHeight , alignment: .center)
    }
       
  }
}
票数 0
EN

Stack Overflow用户

发布于 2021-03-27 18:04:27

我找到了一个简单的解决方案:

代码语言:javascript
复制
ZStack{
    VStack{
        ForEach(0..100) { elem in
            Button(action: {"do something..."}, label: Text("\(elem)"))
        }
    }

    ScrollView {
        ForEach(0..<100) { elem in 
            Text("\(elem)")
        }    
    }
    .zIndex(1) // <<<<<------ solution
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66813403

复制
相关文章

相似问题

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