ios - 如何删除 SwiftUI 中列表行的最小垂直填充或最小高度?

标签 ios xcode list swiftui

我正在尝试向我的列表中添加一个非常短的行,框架高度为 2,但该列表在列表项上方和下方添加了不需要的填充或限制为最小高度,我不知道如何删除它。我制作了以下内容来说明问题:

struct ContentView: View {
    var body: some View {
        List {
            Color.red
                .frame(height: 2)
            Color.blue
                .frame(height: 2)
        }
    }
}

enter image description here

如何删除列表项上方和下方的填充?如果使用节并添加页眉或页脚,则相同。它不允许我有一个框架高度较小的列表条目。

在 LazyVStack 中我没有这个问题,但我需要使用一个列表。

最佳答案

  1. 使用 .environment(\.defaultMinListRowHeight, 0) 使每行的最小高度为 0。否则,每行将始终至少为 44(默认)点高。
  2. 使用 .listRowInsets(EdgeInsets()) 使每一行都没有插入。您也可以执行 .listRowInsets(EdgeInsets(top: 0, leading: 0, bottom: 0, trailing: 0)),结果相同。
struct ContentView: View {
    var body: some View {
        List {
            Color.red
                .frame(height: 5)
                .listRowInsets(EdgeInsets()) /// 2.
            Color.blue
                .frame(height: 5)
                .listRowInsets(EdgeInsets())
        }
        .environment(\.defaultMinListRowHeight, 0) /// 1.
    }
}

结果:

Blue and red lines stacked vertically, with no gap in between

关于ios - 如何删除 SwiftUI 中列表行的最小垂直填充或最小高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68043037/

相关文章:

ios - 如何将视频文件移动到照片中的特定相册?

ios - 架构 armv7 的 undefined symbol : "_OBJC_CLASS_$_SSZipArchive"

swift - 如何使用在 XIB 自定义 View 中创建的按钮来控制 viewController.swift 中的 setContentOffset?

python - 如何在Python中将数据框的每一行合并到一个列表中

ios - Swift 3 Array,一次删除多个项目,使用 .remove(at : i)

ios - UIApplication 没有成员共享

iphone - 在未知的 NSDictionary/NSArray 深度中搜索对象

ios - xcode - 无效的位码

java - 如何设置具有两个信息的 TREE NODE<T> - [STRING.INT]?

javascript - 如何使用 javascript 将复选框添加到列表