具有多列的 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

删除具有绑定布尔值的列表项 - SwiftUI

每个部分具有不同单元格的 SwiftUI 列表

具有自定义数据结构的 SwiftUI 列表,每个循环都嵌套 [关闭]

如何在 SwiftUI 列表行中具有相同的比例?