我在一行上启用向左滑动以显示操作。点击动作后,我希望刷开的表格单元格关闭。我该怎么做呢?
我已尝试cell.setEditing(false, animated:true)
,但设置编辑并未关闭滑动。
答案 0 :(得分:6)
注意:我没有足够的声誉来评论您的问题,因此我必须对您的实施做出一些假设。
如果您尝试关闭tableView:commitEditingStyle:forRowAtIndexPath:
中的单元格,可以试试这个:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete)
{
// remove delete button only after short delay
[self performSelector:@selector(hideDeleteButton:) withObject:nil afterDelay:0.1];
}
}
- (void)hideDeleteButton:(id)obj
{
[self.tableView setEditing:NO animated:YES];
}
使用performSelector:withObject:afterDelay:
的原因是Table View Programming Guide for iOS
注意:数据源不应该从tableView的实现中调用setEditing:animated::commitEditingStyle:forRowAtIndexPath:。如果由于某种原因必须使用performSelector:withObject:afterDelay:方法,它应该在延迟之后调用它。
所有这些都受到以下答案的启发: https://stackoverflow.com/a/22063692/2433921