我想在我的UITableView
两个编辑选项中实现:
1.当用户滑动UITableViewCell
它会得到UITableViewCellEditingStyleDelete
。
2.当用户按下编辑按钮时,UITableView
将进入编辑模式(我自己在UITableViewCell
.m文件中定义:
-(void) setEditing:(BOOL)editing animated:(BOOL)animated {
if ( (selectionButton.superview == self.contentView && !editing) || (selectionButton.superview != self && editing))
{
// REMOVE BUTTON
[super setEditing:editing animated:animated];
if (self.editingStyle != UITableViewCellEditingStyleDelete) {
if (!editing)
{
if (selectionButton.superview == self.contentView)
{
[UIView animateWithDuration:0.5 animations:^
{
selectionButton.alpha = 0;
CGRect btnFrame = selectionButton.frame;
btnFrame.origin.x -= 120;
selectionButton.frame = btnFrame;
}
completion: ^(BOOL done)
{
[selectionButton removeFromSuperview];
}
];
}
}
else {
// ADD BUTTON
if (selectionButton.superview != self.contentView)
{
[self.contentView addSubview:selectionButton];
selectionButton.alpha = 0;
selectionButton.center = CGPointMake(-self.contentView.frame.origin.x / 2 - 30, self.frame.size.height / 2);
[UIView animateWithDuration:0.3 animations:^
{
selectionButton.alpha = 1;
selectionButton.center = CGPointMake(-self.contentView.frame.origin.x / 2 + 3, self.frame.size.height / 2);
}];
}
}
[self setNeedsLayout];
}
}
}
我想将此委托方法添加到我的UITableView
:
-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
if (table.editing) {
return 3;
} else {
return UITableViewCellEditingStyleDelete;
}
// return 3;
}
但问题是当我在单元格上滑动手指时,该函数调用了 3 次。
有什么办法可以解决吗?或者它内置在UITableView
当用户用手指在这个方法调用的单元格上滑动时?
我可以自己实现UISwipeGestureRecognizer
并仅在按下编辑按钮时调用委托函数吗?