如何在 SwiftUI 中动态调整可垂直滚动的 VStack 中的一行中的项目数?
Posted
技术标签:
【中文标题】如何在 SwiftUI 中动态调整可垂直滚动的 VStack 中的一行中的项目数?【英文标题】:How to dynamically adjust the number of items in a row within a vertically scrollable VStack in SwiftUI? 【发布时间】:2020-07-10 14:05:21 【问题描述】:输入:我有一个视图列表,其中每个视图都是一个图像和文本的 VStack
要求:我想显示它们垂直滚动的视图。但是,每一行应该有多个这样的视图(基于可以容纳多少)。 [请注意,由于文本不同,视图的大小不相等]。它不应该是水平滚动的
问题:如何根据可以容纳的字符串数动态调整一行中的字符串数?以下图为例
在此先感谢您的投入和感谢!
【问题讨论】:
上面提供的截图有什么问题?这些是多行,每行包含多个堆叠在 HStack 中的元素。 嗨@davidev,是的,总体 VStack 中每一行中的元素都在 HStack 中。我想知道的是是否有办法根据屏幕大小和文本大小动态调整每个 HStack 中的项目数 【参考方案1】:我建议你使用带有自适应类型的 LazyVGrid。
这里不再需要使用List,只需要使用视图数组
这是一项新功能,因此它可以在 ios14.0 及更高版本中运行
Struct MainView : View
private let columnGrid =
GridIten(.adaptive(minimum:50)) //here you can put minimum width size value unto you.
var body: some View
LazyVGrid(columns: columnGrid)
//your view with image will come here
【讨论】:
嗨@Reed,感谢您的投入。很高兴知道在 iOS14 中有一种可能的方法来做到这一点。我希望有办法在 iOS13 中也能做到这一点以上是关于如何在 SwiftUI 中动态调整可垂直滚动的 VStack 中的一行中的项目数?的主要内容,如果未能解决你的问题,请参考以下文章