如何禁用 .onDelete- 或如何在列表中逐行使用 .deleteDisabled?
Posted
技术标签:
【中文标题】如何禁用 .onDelete- 或如何在列表中逐行使用 .deleteDisabled?【英文标题】:How to disable .onDelete- or how to use .deleteDisabled on a per row basis in a list? 【发布时间】:2020-11-16 18:26:03 【问题描述】:我正在尝试根据核心数据项中的 Bool 禁用逐行删除列表中的行。目标是仅允许删除已标记为已付费的列表项。虽然我可以让我的删除功能只删除“付费”项目,但用户仍然可以通过滑动来直观地删除,我想删除它。
我有一个列表,其中包含来自 Core Data 的 forEach。 我将 .onDelete 与删除功能一起使用,效果很好。 我正在尝试使用 .deleteDisabled,但我无法让它使用来自 Core Data 的布尔值。我只能让它同时启用或禁用所有行的删除。
有什么方法可以做到这一点,希望没有 UIkit?
【问题讨论】:
onDelete 不能动态放置在元素上。您可能必须在删除操作中检查它。 【参考方案1】:Xcode 12 我的 2 美分:
....
List ()
ForEach(self.items) item in
let disabled = item.protected // ANY attribute of struct item
MyFileCell(file: file) // ANY swift elements.. Text()....
.deleteDisabled(disabled)
.onDelete(perform: delete)
// end of list
...
【讨论】:
以上是关于如何禁用 .onDelete- 或如何在列表中逐行使用 .deleteDisabled?的主要内容,如果未能解决你的问题,请参考以下文章