我在SwiftUI中有一个列表,如下所示:
编辑:我已经添加了
@State var items = ["item0", "item1", "item2"]
List {
ForEach(items, id: \.self) { item in
ZStack {
Rectangle()
.frame(width: 150, height: 65)
Text(item)
}
.onMove { from, to in
items.move(fromOffsets: from, toOffset: to)
}
}
.listRowSeparator(.hidden)
.listRowBackground(Color.clear)
}
.listStyle(.plain)
.scrollContentBackground(.hidden)
这个想法是将 ForEach 中的项目显示为在屏幕上“漂浮”,而不是以列表形式。
然而,当我拖动列表项(以便在列表中重新排序;使用.onMove()修饰符)时,会出现一个白色背景。 我想要移除这个背景,让它看起来就像是我只是在移动列表项(只有圆角矩形,没有背景)。我该如何实现这个效果?编辑:我已经添加了
.onDrag {} \@ViewBuilder preview: {}
,可以在拖动时移除背景,但是当我们长按项目并开始拖动之前,它仍然会出现。