SwiftUI MacOS 列表的 Inset 填充
Posted
技术标签:
【中文标题】SwiftUI MacOS 列表的 Inset 填充【英文标题】:SwiftUI MacOS Inset paddings of List 【发布时间】:2020-12-05 18:40:43 【问题描述】:我在 macOS 应用程序上使用 SwiftUI 有一个滚动列表视图,我试图在可滚动区域内添加填充,但没有成功。这是我的代码:
List(appListItems, id: \.self, selection: $selectedItem) app in
ApplistItem(item: app, selected: selectedItem?.hashValue == app.hashValue)
.background(Color.red)
.padding(24)
但我得到的是:
设计需要的是这样,如您所见,我希望滚动条保持在右边缘,并且顶部/底部距离应包含在滚动区域中,而不是放在滚动区域之外。不需要水平填充,但我不知道如何处理顶部和底部填充并将它们保持在滚动区域内
【问题讨论】:
【参考方案1】:你需要列表行插入,但它是应用于动态内容,所以你需要使用ForEach
,比如
List
ForEach(appListItems, id: \.self, selection: $selectedItem) app in
ApplistItem(item: app, selected: selectedItem?.hashValue == app.hashValue)
.listRowInsets(EdgeInsets(top: 0, leading: 24, bottom: 0, trailing: 24))
.background(Color.red)
【讨论】:
这对我的水平填充很有帮助,但我不知道如何在顶部和底部添加填充并将它们保持在滚动区域“内部” 刚刚通过在循环前后添加 Spacer 解决了垂直填充以上是关于SwiftUI MacOS 列表的 Inset 填充的主要内容,如果未能解决你的问题,请参考以下文章
带有选择器的 SwiftUI 列表:选择不适用于自定义类型(macOS)
macOS 上的 SwiftUI:如何为 onDelete 启用 UI(从列表中删除)