swift - SwiftUI:如何将列表中的项目拖放到相同(另一个)列表中的另一个项目中
问题描述
我是 swift ui 的新手,我正在构建一种文件管理器视图 A 有 2 个列表(文件夹列表和文件列表)。如何将文件列表中的文件项移动到文件夹列表中的文件夹中,并将文件夹列表中的文件夹项移动到另一个文件夹中。我认为屏幕截图应该可以帮助您理解我的问题: 我的应用程序的屏幕截图
注意:我不想在列表之间重新排序或移动项目。我想将项目拖到(进入)文件夹并调用我的 API。
List {
ForEach(self.filemanager.folders, id: \.self) { folder in
FolderItemView(folder: folder)
.listRowBackground(Color.white)
.onTapGesture(count: 2) {
if (!self.isEditable) {
withAnimation {
self.filemanager.openFolder(folder: folder)
}
}
}
.onTapGesture(count: 1) {
if (!self.isEditable) {
self.folderToViewDetails = folder
}
}
.onLongPressGesture {
withAnimation {
self.isEditable.toggle()
}
}
}//.onMove(perform: onMove)
.onDelete(perform: onDeleteFolder)
.sheet(item: self.$folderToViewDetails) { item in
FolderDetailedView(
folder: item,
filemanager: self.filemanager
)
.environmentObject(self.filemanager.appSettings)
.padding(.top, 16)
}
ForEach(self.filemanager.files, id: \.self) { file in
FileItemView(file: file)
.listRowBackground(Color.white)
.onTapGesture() {
if (!self.isEditable) {
self.fileToViewDetails = file
}
}
.onLongPressGesture {
withAnimation {
self.isEditable.toggle()
}
}
}//.onMove(perform: onMove)
.onDelete(perform: onDeleteFile)
.sheet(item: self.$fileToViewDetails) { item in
FileDetailedView(
file: item,
filemanager: self.filemanager
)
.environmentObject(self.filemanager.appSettings)
.padding(.top, 16)
}
}.environment(\.editMode, isEditable ? .constant(.active) : .constant(.inactive))
解决方案
推荐阅读
- javascript - 无法定位元素。我正在使用量角器 java 脚本。我有几种方法,如 css、xpath 和 id
- regex - 如何排除金额?
- angularjs - 串联调用角度方法-Highcharts
- java - Transformer 从 xml 中错误地删除了命名空间
- wordpress - wordpress 中的 set_locale - woocommerce - 条纹
- java - 如何在 Instant Apps 中实现 Multi Dex?
- javascript - 如何在 vue js 2.5.16 上进行搜索过滤?
- javascript - 在水平滚动页面上的某个点停止
- r - Gsub 在第一个空格之前识别字符串,只有数字
- regex - Powershell 正则表达式未按预期工作