在UITableView中自定义删除按钮

时间:2012-12-02 13:54:58

标签: iphone xcode uibutton customization

我具有“滑动删除”TableViewCell的功能。我想自定义删除按钮。 enter image description here

这是否可行,以及如何访问删除按钮?

3 个答案:

答案 0 :(得分:12)

如果您只需要更改按钮的标题,则只需添加titleForDeleteConfirmationButtonForRowAtIndexPath方法。

- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath {
    return @"NewButtonName";
}

答案 1 :(得分:6)

当用户执行滑动操作

时,将调用此方法

只需将其放入CustomCell

即可
- (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:@"arrow_left_s11.png"]];
                    [[subview.subviews objectAtIndex:0] addSubview:deleteBtn];
                }
            }
        }
    }

您不应该尝试,不应该改变Apple的默认视图。

答案 2 :(得分:-2)

试试这个:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
  if (editingStyle == UITableViewCellEditingStyleDelete)
   {
    //   Your Code
    }
}