watchOS上的SwiftUI水平滚动ScrollView会切断内容吗?

时间:2019-07-09 00:57:01

标签: swiftui watch-os

我有一个带有矩形对象HStack的ScrollView(带有边框只是为了可见)。这是代码:

var body: some View {
        ScrollView([.horizontal]) {
            HStack(alignment: .top, spacing: 4.0) {
                ForEach(0..<3) { _ in
                    Rectangle()
                        .foregroundColor(.gray)
                        .border(Color.red, width: 8)
                        .frame(width: 140, height: 140)
                }
            }
            .frame(width: 140*3 + 4.0*3, height: 140)
        }
}

当我将ScrollView配置为允许水平和垂直滚动(通过初始化程序ScrollView([.horizontal, .vertical]))时,它会适当调整对象的大小并水平滚动,同时垂直反弹:

ScrollView on watchOS laying out correctly

不过,弹跳并不理想,因此我希望它只是水平滚动而不垂直弹跳-但是当我将其配置为只允许水平滚动(ScrollView([.horizontal]))时,它最终会切断内容在底部并垂直滚动以显示内容:

ScrollView on watchOS cutting off content

在将其作为错误提交给“反馈助手”之前,我想确保自己不仅仅缺少一些简单的东西。我没有在发行说明中看到有关ScrollViews的说明:

  

ScrollView并不总是按照其内容的大小调整大小。 (49204262)

     

解决方法:通过将frame(width:height:alignment :)修改器应用于内部视图,调整ScrollView内部视图的大小。 (49204262)

但是我确实将frame(width:height:alignment:)修饰符应用于内部HStack,在这种情况下它仍然会中断,因此我想知道这是否是另一个错误,或者我是否缺少简单的东西。

0 个答案:

没有答案