2013-04-22 99 views
0

我正在使用那种笔记应用程序,我想添加要删除的选项(如iPhone的默认笔记应用程序)。我实施了以下两种表格视图方法..如何在iOS中用动画隐藏UITableView的删除按钮?

- (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 
    } 
} 

除了动画以外,一切正常。在滑动动作上显示删除按钮时发生动画,同时隐藏动画(通过点击或滚动表格视图)不会与动画发生。删除按钮刚刚消失。

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

+0

@property编辑 当你刷卡那么可能是你的表reload.just检查。 – 2013-04-22 12:42:01

+0

不,表格视图在刷单元时不会重新加载。在滑动操作中只调用了canEditRowAtIndexPath:方法。 – Confused 2013-04-22 12:55:20

+0

问题是,cell.textLabel.text应该保留一些值。 http://stackoverflow.com/questions/4981953/how-can-i-animate-the-dismissal-of-a-uitableview-swipe-to-delete-button – Confused 2013-04-23 04:56:32

回答

1

对于完全打开的编辑控制你的自定义单元格,你应该重写willTransitionToState方法在你的UITableViewCell子类,并检查状态面具

- (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: 切换接收器进出编辑模式。

  • (无效)setEditing:(BOOL)编辑动画:(BOOL)动画 参数 编辑 YES进入编辑模式,无需离开它。默认值是NO。 动画 是动画显示或消失的插入/删除控制和重新排序控制,否以立即转换。 讨论 如果调用此方法的值设置为YES,并且UITableViewCell对象被配置为具有控件,则单元格会在每个单元格的左侧显示插入(绿色加号)或删除控件(红色减号)并在右侧进行重新排序控制。当调用UITableView的setEditing:animated:方法时,将在每个可见单元格上调用此方法。通过编辑设置为NO调用此方法会从单元格中删除控件。

可用性 适用于iOS平台2.0及更高版本。 请参见宣布 UITableViewCell.h

+0

那么,隐藏动画不是默认的动画? – Confused 2013-04-22 12:41:57

+0

在我的情况下,没有红色减号。您是否看到iPhone笔记应用程序?只有名称为“删除”的红色按钮才会出现在滑动单元格的右端。 – Confused 2013-04-22 13:08:13