SwiftUI:水平滚动视图我能够上下拉图像
Posted
技术标签:
【中文标题】SwiftUI:水平滚动视图我能够上下拉图像【英文标题】:SwiftUI: Horizontal scrollview I am able to pull image up and down 【发布时间】:2019-12-30 14:16:47 【问题描述】:我正在 swiftui 中创建我的水平滚动视图,但是当我尝试使用它时,我能够上下拉动滚动视图中的子视图,当它第一次加载时,顶部、中间和底部也有空白,就好像edgesignore(.all) 不起作用。请参阅下面的代码和图像。我将如何摆脱这个空白,并且不允许拉起顶部的蓝色视图?
var body: some View
GeometryReader geometry in
ZStack
VStack
ZStack
ScrollView (.horizontal, showsIndicators: true)
HStack(spacing: 0)
Group
Color(.blue)
Color(.red)
Color(.green)
.frame(width: geometry.size.width, height: geometry.size.height * 0.52)
//end of scroll\view
.frame(width: geometry.size.width, height: geometry.size.height * 0.52)
.frame(width: geometry.size.width, height: geometry.size.height * 0.52)
.edgesIgnoringSafeArea(.all)
ZStack
Color(.orange)
//end of second ZStack
.frame(width: geometry.size.width, height: geometry.size.height * 0.48)
.edgesIgnoringSafeArea(.all)
【问题讨论】:
您的代码没有运行您提供的图像。更新或解释更多 【参考方案1】:您必须根据以下注意事项重构您的代码:
只需将 VStack Spacing 设置为 0,视图将不再在其垂直轴上滚动。您可以通过将两个框架高度增加到 100% 以上来检查这一点,它会再次开始滚动
重构ZStacks,根据上下Stack设置EdgeIgnoringSafeArea。请记住,在 SwiftUI 中,检查 ViewModifiers 的正确顺序很重要。
var body: 一些视图
GeometryReader 中的几何体
VStack(spacing:0)
ZStack
Color(.orange)
.edgesIgnoringSafeArea(.top)
ScrollView (.horizontal, showsIndicators: true)
HStack(spacing:0)
Group
Color(.blue)
Color(.red)
Color(.green)
.frame(width: geometry.size.width, height: geometry.size.height * 0.52)
ZStack
Color(.orange)
.edgesIgnoringSafeArea(.bottom)
.frame(width: geometry.size.width, height: geometry.size.height * 0.48)
它适用于 XCode 11.3。
【讨论】:
以上是关于SwiftUI:水平滚动视图我能够上下拉图像的主要内容,如果未能解决你的问题,请参考以下文章