单元格滑动更改将文本删除为iOS中的图标

时间:2017-11-01 02:37:00

标签: ios objective-c uitableview

我正在使用Xcode 9版本,现在我正在使用单元格实现tableview。滑动单元格时,必须显示删除按钮。它现在正在运作。但我想将删除从文本更改为图标。到目前为止我所做的是:

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

但上面的代码不起作用。也许这在以前的Xcode版本中有效,但在最新版本中没有。你对如何解决这个问题有任何想法吗?

1 个答案:

答案 0 :(得分:0)

我不知道这是否有效,但建立this帖子后你可以试试:

 -(NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath {
 UITableViewRowAction *button = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath)
    {
        NSLog(@"Action to perform with Button 1");
    }];
    button.backgroundColor = [UIColor redColor]; // red to keep it the same, or whatever you want
    [button setImage:[UIImage imageNamed:@"delete_icon.png"]];

    return @[button];
}

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
// you need to implement this method too or nothing will work:

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