我想在点击项目时从列表中删除该项目。当我删除其中一个单元格时,所有其余的单元格点击指示器都显示它们也被点击了。
另外,它不会删除它,只是使它暂时不可见。当我重新加载页面时,删除的单元格再次出现在内存中,并且再次可见。
List{
ForEach(list.reminders, id: \.self) { reminder in
Button(action: {
self.isSelected.toggle()
self.delete(at: list.reminders.firstIndex(where: {$0.hashValue == reminder.hashValue})!)
}, label: {
HStack{
Image(systemName: isSelected ? "largecircle.fill.circle" : "circle")
.resizable()
.aspectRatio(contentMode: .fit)
.foregroundColor((isSelected ? Color(list.color) : .gray))
.frame(width: 22, height: 22, alignment: .trailing)
.cornerRadius(22)
ReminderCell(reminder: reminder)
}
})
.padding(.bottom)
}.onDelete(perform: deleteReminder)
}
func deleteReminder(at offsets: IndexSet) {
list.reminders.remove(atOffsets: offsets)
}
func delete(at index: Int) {
list.reminders.remove(at: index)
}
首先,如果你想让.ontapgesture{}
中的函数起作用,你得把它放在按钮标签外面,因为当你点击它时,按钮动作中的函数就会被触发。
其次,如果要获得ForEach中元素的索引,必须添加indexs
。在下面检查我的代码,因为你没有完全贴出你的代码,所以我不能确切地测试我的代码。
List {
ForEach(list.reminders.indices, id: \.self) { index in
HStack {
Button(action: {
self.isSelected.toggle()
}, label: {
Image(systemName: isSelected ? "largecircle.fill.circle" : "circle")
.resizable()
.aspectRatio(contentMode: .fit)
.foregroundColor((isSelected ? Color(list.color) : .gray))
.frame(width: 22, height: 22, alignment: .trailing)
.cornerRadius(22)
})
Button(action: {
deleteReminder(at: IndexSet(integer: index))
}) {
ReminderCell(reminder: list.reminders[index])
}
}
.padding(.bottom)
}.onDelete(perform: deleteReminder)
}
问题内容: 我有一个类似的清单 这应该变成 我只想删除标点符号,使字母和数字保持原样。标点是常数。我知道这很简单,但是我有点喜欢python所以… 谢谢,giodamelio 问题答案: 假设您的初始列表存储在变量x中,则可以使用以下命令: 删除空字符串:
我尝试使用下面的代码从XML下面删除scheme-details1,但无法删除。 其中是。 以下是我的XML响应:-
我有一个自定义列表类的应用程序。尝试使用customer参数执行foreach函数时,会发生以下情况: 重要!我不能修改主代码 主要内容: XList类: 错误:
我有游戏对象的n-ary树。用户随机选择树中的一些对象并想要删除。问题在于,有些对象是另一个对象的子对象。事实证明,每次删除层次结构中的节点后,我必须遍历所有选定的节点并将其删除。算法是否比 O (n^2) 快? upd:为了更清楚我需要什么,我写了伪代码:
问题内容: 如果我需要从List中删除一个对象(假设字符串“ abc” linkedList或ArrayList),则可以删除哪一个?(我认为两者都是相同的) ,如果我使用Linkedlist和arraylist,那么时间和空间的复杂度是多少 (我相信两者的时间复杂度都为O(n)相同) 问题答案: 两者都具有相同的时间复杂度-O(n),但是恕我直言,该版本会更快,尤其是在大型列表中,因为当您从数组
问题内容: 在遍历列表时,我想根据条件删除列表中的项。请参见下面的代码。 这给了我一个例外。 如何才能做到这一点? 问题答案: 您需要使用和调用上,而不是使用循环。