在reloadData Xcode的同时在表的末尾插入新的自定义行

时间:2015-10-27 03:37:17

标签: ios uitableview

坦率地说,我知道如何在没有reloadData的情况下插入表的新自定义行结束但现在我想知道如何在reloadData时插入UITable的新自定义行结束。

这是我在reloadData中插入新自定义行的代码。但是新的插入行出现在表格的顶部,这不是我想要的。

    CoachPadItem *newCoachPadItem = [[CoachPadItem alloc]init];
    newCoachPadItem.coachpadDescription = textView.text;
    newCoachPadItem.coachpadTagId = @"0";
    [_tagPointsArray addObject:newCoachPadItem];
    [_coachpadTableView reloadData];

的cellForRowAtIndexPath

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    // Configure the cell...
    CoachPadPointCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CoachPadPointCell" forIndexPath:indexPath];

    if (cell == nil) {
        cell = [[CoachPadPointCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CoachPadPointCell"];
    }

    counter += 1;

    cell.tagBtn.hidden = YES;
    cell.btnRemove.hidden = YES;

    cell.tagBtn.userInteractionEnabled = canEdit;
    [cell.tagBtn addTarget:self action:@selector(removeTag:) forControlEvents:UIControlEventTouchUpInside];
    [cell.btnRemove addTarget:self action:@selector(removePad:) forControlEvents:UIControlEventTouchUpInside];
    cell.btnRemove.tag = counter;
    cell.txtPoint.delegate = self;
    cell.txtPoint.tag = counter;
    cell.txtPoint.textContainer.maximumNumberOfLines = 2;
    cell.tagBtn.tag = counter;
    cell.txtPoint.textAlignment = NSTextAlignmentLeft;
    cell.txtPoint.backgroundColor = [UIColor clearColor];
    cell.txtPoint.userInteractionEnabled = canEdit;

    cell.backgroundColor = [UIColor clearColor];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;

    CoachPadItem *curr = _tagPointsArray[indexPath.row];
    cell.txtPoint.text = cure.MyDesc;

    return cell;
}

请帮助我如何在UITable末尾添加新行?

2 个答案:

答案 0 :(得分:2)

我不确定发生了什么。

但是,如果[_tagPointsArray addObject:newCoachPadItem];导致新插入的行出现在表格的顶部,这不是我想要的,您可以尝试:

[_tagPointsArray insertObject: newCoachPadItem atIndex:0];

答案 1 :(得分:1)

相信您在_tagPointsArray方法中使用cellForRowAtIndexPath,iOS会自动处理新的行插入,因为我可以看到您在_tagPointsArray之前更新了模型reloadData打电话给你的桌子视图。

向下滚动即可看到!

编辑: OP编辑帖子后

检查以下两行:

CoachPadItem *curr = _tagPointsArray[indexPath.row];
cell.txtPoint.text = cure.MyDesc;

您没有从数组中使用获取的模型对象。如果在数组中的右侧位置添加了对象,则必须执行此操作。 仔细检查您的模型数据定位以及我提到的上述两行。