在UITableView中的特定位置添加新单元格

时间:2014-11-13 06:16:27

标签: ios uitableview xamarin

我刚刚开始学习iOS编程,并且要求用户能够编辑他们的个人资料(添加电子邮件,数字等)。我想这样做就像iOS7 +的原生联系人应用程序如何添加新联系人一样。你看到一个单元格说'#34;添加手机"当你点击它时,你会在它上面找到一个新的细胞。当您点按"添加手机"细胞你会得到新的细胞堆积在上面。任何人都可以指出我在正确的方向上取得类似的结果。感谢您提前提供任何帮助。

enter image description here

2 个答案:

答案 0 :(得分:0)

将单元格插入表格视图有几种不同的方法。您可以在表格视图的编辑模式中使用表格的插入样式以动画方式添加单元格。

在所需索引处向数据源数组添加一个条目并调用[tableView reloadData]

可能更容易

例如,如果添加电话按钮是表格中的最后一个单元格:

在didSelectRowAtIndexPath中:

if (indexPath.row == mutableArray.count - 1) {
  // Clicked add phone button
  [mutableArray addObject:/*phone cell placeholder*/ atIndex:mutableArray.count - 1];
  tableView reloadData];
}

重新加载表格视图后,最后一个单元格上方会有一个新单元格,您可以在其中添加文本字段以输入电话号码。

答案 1 :(得分:0)

您需要在数据源中添加该单元格的数据并调用重新加载...这是一个简单的数据。

显示您需要使用的删除或插入按钮

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{

    if (<condition>) {
        return UITableViewCellEditingStyleInsert;
    }
    else {
        return UITableViewCellEditingStyleDelete;

    }
    return UITableViewCellEditingStyleNone;
}

用于特定于行的操作,您可以使用以下方法

- (void)insertRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation;
- (void)deleteRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation;
- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation NS_AVAILABLE_IOS(3_0);
- (void)moveRowAtIndexPath:(NSIndexPath *)indexPath toIndexPath:(NSIndexPath *)newIndexPath NS_AVAILABLE_IOS(5_0);