【发布时间】:2026-01-19 20:55:02
【问题描述】:
我知道滑动删除功能的工作原理,但我不太确定如何制作它,而不是让删除按钮出现删除,我宁愿让它在滑动时删除单元格左侧或右侧的单元格。
这是我让单元格向左注册向左滑动手势的地方:
UISwipeGestureRecognizer* swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeLeft:)];
[swipeLeft setDirection:UISwipeGestureRecognizerDirectionLeft];
[cell addGestureRecognizer:swipeLeft];
这里是选择器的方法:
- (void)swipeLeft:(UIGestureRecognizer *)gestureRecognizer {
if (gestureRecognizer.state == UIGestureRecognizerStateEnded) {
UITableViewCell *cell = (UITableViewCell *)gestureRecognizer.view;
NSIndexPath* indexPath = [self.tableView indexPathForCell:cell];
}
}
现在从 UITableview 删除单元格时它工作得很好;但是,我需要一个动画来显示单元格向左移动一定距离然后删除。我没有什么删除按钮。
编辑:这是带有动画的删除行:
[self.tableView deleteRowsAtIndexPaths:@[indexPath]
withRowAnimation:UITableViewRowAnimationLeft];
[self.tableView reloadData];
这个删除很好,但是我可以让它像淡入淡出动画一样创建,还是我可以修改它,以便在滑动指定距离后提交删除?
【问题讨论】:
-
您想在邮箱应用程序中执行类似操作以删除邮件吗?
-
对,但我希望它只是自动删除而不是通过按下其中任何一个按钮来确认,而不是出现“更多”和“存档”。
-
所以当用户不小心做了滑动动作时,您想删除数据而没有机会中止吗?不是一个好主意。但是,如果您真的想这样做,请不要使用标准的滑动删除。为每个单元格添加您自己的滑动手势。
-
对,这就是我已经做过的事情,但是一旦他们滑动它就会删除而没有任何类型的动画。我想看到整个单元格连同它的所有内容一起向左移动。
-
如果它在没有动画的情况下删除,那么您选择这样做。而是删除带有动画的行。如果您需要帮助,请发布您的删除代码。