UITableView отключают сильный удар, чтобы удалить, но все еще иметь, удаляют в Режиме редактирования?

// todo работает и для java в андроид студии. Нет необходимости в капитализации.

91
задан willi 18 September 2012 в 08:48
поделиться

2 ответа

Хорошо, это оказалось довольно просто. Вот что я сделал, чтобы решить эту проблему:

Objective-C

- (UITableViewCellEditingStyle)tableView:(UITableView *)aTableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
    // Detemine if it's in editing mode
    if (self.tableView.editing)
    {
        return UITableViewCellEditingStyleDelete;
    }

    return UITableViewCellEditingStyleNone;
}

Swift 2

override func tableView(tableView: UITableView, editingStyleForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCellEditingStyle {
    if tableView.editing {
         return .Delete
    }

    return .None
}

Swift 3

override func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCellEditingStyle {
    if tableView.isEditing {
        return .delete
    }

    return .none
}

Вам все еще нужно реализовать tableView: commitEditingStyle: forRowAtIndexPath: , чтобы зафиксировать удаление.

283
ответ дан 24 November 2019 в 06:38
поделиться

Обычно вы включаете или отключаете редактирование с помощью методов

- (void)setEditing:(BOOL)editing animated:(BOOL)animated

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

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath

уведомляется о запросе на удаление. Если вы реализуете этот метод, то смахивание для удаления автоматически становится активным. Если вы не реализуете этот метод, смахивание для удаления неактивно, однако вы не можете удалить строку. Поэтому, насколько мне известно, вы не сможете добиться того, о чем просили, если не используете некоторые недокументированные частные API. Наверное, так реализовано приложение Apple.

2
ответ дан 24 November 2019 в 06:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: