我有一个带有矩形对象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([.horizontal])
)时,它最终会切断内容在底部并垂直滚动以显示内容:
在将其作为错误提交给“反馈助手”之前,我想确保自己不仅仅缺少一些简单的东西。我没有在发行说明中看到有关ScrollViews的说明:
ScrollView并不总是按照其内容的大小调整大小。 (49204262)
解决方法:通过将frame(width:height:alignment :)修改器应用于内部视图,调整ScrollView内部视图的大小。 (49204262)
但是我确实将frame(width:height:alignment:)
修饰符应用于内部HStack,在这种情况下它仍然会中断,因此我想知道这是否是另一个错误,或者我是否缺少简单的东西。