SwiftUI 水平 ScrollView 具有不可见的填充

Posted

技术标签:

【中文标题】SwiftUI 水平 ScrollView 具有不可见的填充【英文标题】:SwiftUI horizontal ScrollView has invisible padding 【发布时间】:2020-02-11 21:55:10 【问题描述】:

嵌套的水平 ScrollView 从顶部具有不可见的填充。我尝试为 ScrollView 和内容添加“.padding(.top, 0)”,但它不起作用。这是一个错误还是可以删除此填充?

VStack(alignment: .leading) 
      Text("Text one")
      Text("Text two")
      ScrollView(.horisontal, showsIndicators: false) 
      Text("Text with strange top padding")
    
.padding(.horizontal)

【问题讨论】:

【参考方案1】:

我不知道 ScrollingView 是什么,但使用标准的 ScrollView 提供的示例效果很好(使用 Xcode 11.2 / ios 13.2 测试)

这是一个在滚动视图周围添加边框以提高可见性的演示

struct TestHorizontalScrollView: View 
    var body: some View 
        VStack(alignment: .leading, spacing: 0) 
              Text("Text one")
              Text("Text two")
              ScrollView(.horizontal) 
                Text("Text with strange top padding")
            .border(Color.red)
        .padding(.horizontal)
    

【讨论】:

抱歉,打错了。看到“Text two”和ScrollView里面的文字之间的差距了吗?这就是我所说的。 @yoprst,啊那个..那么你只需要在VStack中明确指定spacing,因为如果没有,那么系统会在每对兄弟视图之间选择默认值(并且没有填充硬编码,因为你接受了) .

以上是关于SwiftUI 水平 ScrollView 具有不可见的填充的主要内容,如果未能解决你的问题,请参考以下文章

水平 ScrollView (SwiftUI) 中的动画展开/折叠组

SwiftUI ScrollView 垂直和水平滚动

水平 ScrollView 在 SwiftUI 中在更改时垂直反弹

SwiftUI:调整 ScrollView 的边界

SwiftUI ScrollView 滚动到相对位置

在 SwiftUI ScrollView 中停止垂直滚动