具有多列的 SwiftUI 列表
Posted
技术标签:
【中文标题】具有多列的 SwiftUI 列表【英文标题】:SwiftUI list with multiple columns 【发布时间】:2020-08-21 11:56:30 【问题描述】:我正在 swiftui 中寻找相当于 html 内联块的内容。我基本上希望它像列表一样工作 - 但如果它会超过该行,只需换行 - 例如
WrappingList( items )
Text( "item.name")
但我发现它比我想象的要难。我真的希望将事物列表带到表格中——即增量更新和滚动,但我找不到将其映射到快速声明式样式的方法。在您以程序方式添加控件的语言中,这很简单:
current_x = 0
current_y = 0
foreach (var item in items )
control = create_control_for( item )
biggest_y = max( current_y + control.height, biggest_y)
if (control.width + current_x > width)
current_x=0;
current_y = biggest_y;
control.position = (current_x, current_y)
但 swift 似乎想在 hstacks 或 vstacks 中做事,我真的不知道如何做到这一点,但仍然保留列表的属性 - 特别是在事先不知道事物大小的情况下 - 即我不想要一个固定的网格。
这样的功能是否已经存在?如果没有,有没有办法将上面的代码行映射到 SwiftUI 中?
【问题讨论】:
这是否回答了您的问题***.com/a/58876712/12299030? 我想是这样 - 我要玩它 - 我希望使用列表,因为重复使用单元格模式 - 但你所做的非常聪明 - 我不知道关于 ZStack,并且在有一个我可以调整的变量时遇到问题 - 没有考虑将循环本身放在一个函数中 - 谢谢 【参考方案1】:这里有一个答案 - asperi 上面的评论效果很好 - 链接到 this stack overflow article
【讨论】:
请编辑您的答案,使其不仅仅是评论 - 至少是指向另一个答案的链接,并且可能是其中的引文。以上是关于具有多列的 SwiftUI 列表的主要内容,如果未能解决你的问题,请参考以下文章
有没有更好的方法在 SwiftUI 中创建多列(数据表)列表视图
使用 SwiftUI 在 MacOS 中的多列 TableViews