#ios #arrays #swiftui #swiftui-list
#iOS #массивы #swiftui #swiftui-список
Вопрос:
Я пытаюсь отключить удаление строк в списке для каждой строки на основе Bool из элемента core data. Цель состоит в том, чтобы разрешить удалять только те элементы списка, которые были отмечены как оплаченные. Хотя я могу заставить свою функцию удаления удалять только «платные» элементы, пользователь все равно сможет визуально перейти к удалению, и я хочу это удалить.
У меня есть список с forEach из Core Data. Я использую .OnDelete с функцией удаления, которая работает нормально. Я пытаюсь использовать .deleteDisabled, но я не могу заставить его использовать bool из Core Data. Я могу заставить его включить или отключить удаление для всех строк одновременно.
Любой способ сделать это, надеюсь, без UIKit?
Комментарии:
1. OnDelete не может быть динамически размещен в элементе. Возможно, вам придется проверить это в вашем действии удаления.
Ответ №1:
мои 2 цента за Xcode 12:
....
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
…