Вот <39985555539647>leadingSwipeAction на UITableViewCell. Мой вопрос заключается в том, как вызвать действие delete
, просто проведя пальцем по экрану и не нажимая фактическую кнопку, которая появляется слева.
ОЧЕНЬ ВАЖНО:<39985555539654> я не хочу использовать метод actions.performsFirstActionWithFullSwipe = YES;
. Я хочу, чтобы действие запускалось автоматически только при первом пролистывании 1/3 экрана.
- (UISwipeActionsConfiguration *)tableView:(UITableView *)tableView leadingSwipeActionsConfigurationForRowAtIndexPath:(NSIndexPath *)indexPath
{
UIContextualAction *delete = [UIContextualAction
contextualActionWithStyle:UIContextualActionStyleNormal title:nil
handler:^(UIContextualAction * _Nonnull action, __kindof UIView * _Nonnull
sourceView, void (^ _Nonnull completionHandler)(BOOL)) {
// your code...
}];
delete.image = [UIImage systemImageNamed:@"trash"];
UISwipeActionsConfiguration *actions = [UISwipeActionsConfiguration configurationWithActions:[[NSArray alloc] initWithObjects:delete, nil]];
actions.performsFirstActionWithFullSwipe = NO;
return actions;
}
Спасибо.
Пролистывание примерно до 80% ширины экрана должно привести к срабатыванию действия без необходимости дополнительного касания. Я не думаю, что вам нужны дополнительные изменения кода.
Нет. Действие «Ответить на сообщение» в WhatsApp работает иначе. Здесь я могу смахнуть около 30%, и это уже вызывает действие. Мне нужно 30% - 50%. Никто не смахивает 80%.
Если вам нужно такое конкретное поведение, вам понадобится использовать полностью настраиваемую реализацию, тогда вы не сможете использовать поведение по умолчанию для
UITableView
UISwipeActionConfiguration
.Есть ли какие-либо учебные пособия, которые вы могли бы знать?