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

时间:2015-03-03 09:45:10

标签: ios objective-c iphone uitableview uiactivityindicatorview

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

- (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放在正在删除的单元格的中间。

2)在发生这种情况时,无论如何禁用删除按钮?我不希望用户按下按钮。

EDIT1

我忘了提到我正在为细胞出口使用自定义类。在正常的tableView中你可以填充我使用这个代码来获取每个单元格

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

1 个答案:

答案 0 :(得分:1)

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

- (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
    }
}

快乐编码.. :)