如何禁用 .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?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 GNU Emacs 中逐行滚动?

如何在 html 文本区域中逐行读取文本? [复制]

如何在 Python 中逐行打印字典?

如何在 Julia 中逐行读取文件?

我应该如何在 Python 中逐行读取文件?

如何使用python在字符串html中逐行添加“\ n”?