Как предотвратить отступ в ячейках при использовании пользовательских действий смахивания в режиме редактирования? - PullRequest
1 голос
/ 03 июля 2019

Я пытаюсь реализовать две ячейки: одну, которую можно удалить, проведя пальцем, и одну, которую нельзя удалить, но действия для проведения другой операции.

ЭтоВот как это выглядит сейчас:

swiping

Я не хочу, чтобы средняя ячейка была с отступом при нажатии Edit.Без какого-либо специального кода все ячейки показывали бы этот красный круг и получали кнопку удаления, но я добавил несколько строк кода, чтобы предотвратить это.

Этот код установит все ячейки без начального или конечного пролистываниядействие, чтобы не стать редактируемым, что объясняет нижнюю ячейку в GIF.Я должен включить ведущие действия смахивания к этому, потому что, если ячейка не editable, то я вообще не могу смахнуть.

func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
    let vm = sections[indexPath.section].viewModels[indexPath.row]
    return vm.leadingSwipeActions != nil || vm.trailingSwipeActions != nil
}

Следующий код предотвратит показ средней ячейкикрасный кружок.

func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCell.EditingStyle {
    return sections[indexPath.section].viewModels[indexPath.row].trailingSwipeActions == nil ? .none : .delete
}

Если я не передам .none для ячейки с ведущими действиями, тогда будет показан красный кружок И , он даже покажет удаление по умолчанию-Проведите.Я не хочу, чтобы эта строка могла быть удалена!

Как я могу предотвратить отступ средней ячейки, сохраняя при этом возможность ее проводить?

1 Ответ

2 голосов
/ 08 июля 2019

Этот метод, кажется, работает! tableView(_ tableView: UITableView, shouldIndentWhileEditingRowAt indexPath: IndexPath) -> Bool https://developer.apple.com/documentation/uikit/uitableviewdelegate/1614873-tableview?language=objc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...