0

我正在使用这种笔记应用程序,我想添加滑动删除选项(如 iPhone 的默认笔记应用程序)。我实现了以下两种表格视图方法..

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
    return YES;
}

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (editingStyle == UITableViewCellEditingStyleDelete)
    {
        //Action to delete value of the cell
    }
}

除了动画,一切都很好。在滑动动作上显示删除按钮会发生在动画中,而隐藏它(通过点击或滚动表格视图)不会发生在动画中。删除按钮立即消失了。

我可以用动画显示删除按钮的隐藏过程吗?

4

1 回答 1

1

为了完全控制自定义单元格中的编辑,您应该覆盖 UITableViewCell 子类中的 willTransitionToState 方法并检查状态掩码

- (void)willTransitionToState:(UITableViewCellStateMask)state
{
    NSString *logStr = @"Invoked";
    if ((state & UITableViewCellStateShowingEditControlMask)
        != 0) {
        // you need to move the controls in left
        logStr = [NSString stringWithFormat:@"%@
                  %@",logStr,@"UITableViewCellStateShowingEditControlMask"];
    }
    if ((state & UITableViewCellStateShowingDeleteConfirmationMask)
        != 0) {
        // you need to hide the controls for the delete button
        logStr = [NSString stringWithFormat:@"%@
                  %@",logStr,@"UITableViewCellStateShowingDeleteConfirmationMask"];
    }
    NSLog(@"%@",logStr);
    [super willTransitionToState:state];
}

编辑:

你试过了吗:

setEditing:animated:切换接收器进入和退出编辑模式。

  • (void)setEditing:(BOOL)editing animated:(BOOL)animated 参数编辑 YES 进入编辑模式,NO 离开。默认值为 NO 。动画 YES 为插入/删除控件和重新排序控件的出现或消失设置动画,NO 使过渡立即进行。讨论 当你在editing的值设置为YES的情况下调用这个方法,并且UITableViewCell对象被配置为有控件时,单元格会在每个单元格的左侧显示一个插入(绿色加号)或删除控件(红色减号)和一个在右侧重新排序控件。当调用 UITableView 的 setEditing:animated: 方法时,每个可见单元格都会调用此方法。在编辑设置为 NO 的情况下调用此方法会从单元格中删除控件。

可用性 适用于 iOS 2.0 及更高版本。另见 @property 编辑在 UITableViewCell.h 中声明

于 2013-04-22T12:30:38.800 回答