2010-04-19 44 views
0

我已经在UITableView中实现了默认的滑动删除手势,现在我觉得这个默认按钮在上下文中看起来不太好。另外,它似乎不是本地化的。在法国它仍然显示“删除”作为文本。如何在UITableView的滑动删除手势中提供自定义删除按钮?

如何在此处提供自定义按钮?我这是怎么实现的那个家伙:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 
    // do stuff, a lot of stuff...really a lot... 
} 

回答

8

你想在的UITableViewDelegate协议tableView:titleForDeleteConfirmationButtonForRowAtIndexPath:

+1

所以这只能更改标题。但我是否也可以改变按钮本身?或者,我必须提供自己的实施吗? – dontWatchMyProfile 2010-04-20 10:51:54

+2

我不认为你可以轻松地改变按钮,只是标题。如果你想要一个完全不同的按钮,我*想*你必须完全重新实现滑动删除手势,按钮动画,一切。 – jasoncrawford 2010-04-22 23:36:39

0

创建自定义单元格类,包括:

- (void)willTransitionToState:(UITableViewCellStateMask)state{ 
    [super willTransitionToState:state]; 
    if ((state & UITableViewCellStateShowingDeleteConfirmationMask) == UITableViewCellStateShowingDeleteConfirmationMask) { 
     for (UIView *subview in self.subviews) { 
      if ([NSStringFromClass([subview class]) isEqualToString:@"UITableViewCellDeleteConfirmationControl"]) { 
       UIImageView *deleteBtn = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 64, 33)]; 
       [deleteBtn setImage:[UIImage imageNamed:@"delete.png"]]; 
       [[subview.subviews objectAtIndex:0] addSubview:deleteBtn]; 
       [deleteBtn release]; 
      } 
     } 
    } 
} 

其中@“delete.png”是你删除的图像

+0

这是一个不错的主意,使用这样的东西:'''[NSStringFromClass([subview class])isEqualToString:@“UITableViewCellDeleteConfirmationControl”]''。它可能随时破坏。 – Frizlab 2013-11-19 14:58:12