编辑 UITableViewCell 时将 UIActivityIndi​​cator 放在单元格中并禁用 UserInteraction

Placing UIActivityIndicator in a cell when editing UITableViewCell and disable UserInteraction

当用户单击 UITableView 中的删除按钮时(编辑打开时),UIActivityIndi​​cator 会显示在 tableView 的中间,因为我想不出将它放在 Cell 中间的方法被删除。这是我现在使用的代码:

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

        self.activityView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
        //cell.accessoryView = self.activityView;


        self.activityView.center = self.tableView.center;
        [self.tableView addSubview:self.activityView];

        [self.activityView startAnimating];
        .... rest of the code

所以 1)

第一个问题如何把indicatorView放在被删除的cell中间

2) 发生这种情况时是否可以禁用删除按钮?我不希望用户大量单击按钮。

EDIT1

我忘了说我正在为电池插座使用自定义 class。因此,在您要填充的普通 tableView 中,我使用此代码获取每个单元格

GamesInfoTableViewCell *cell1 = (GamesInfoTableViewCell *)[tableView dequeueReusableCellWithIdentifier:otherSection];

试试这个代码。它会将子视图添加到您要删除的单元格的中心。

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

        spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];

        UITableViewCell * cell = [tableView cellForRowAtIndexPath: indexPath];
        // Setting Frame of Spinner..
        CGFloat x = (cell.frame.size.width-spinner.frame.size.width)/2;
        CGFloat y = (cell.frame.size.height-spinner.frame.size.height)/2;

        spinner.frame = CGRectMake(x, y, spinner.frame.size.width, spinner.frame.size.height);

        [cell addSubview: spinner];

        [spinner startAnimating];
        //Do YOUR WORK NOW
    }
}

快乐编码..:)