【问题标题】:Add new tableview cells dynamically动态添加新的表格视图单元格
【发布时间】:2013-11-04 16:00:09
【问题描述】:

我看过很多关于在表格视图中添加和删除单元格的帖子。我想要的是当用户单击单元格中的添加按钮时,它必须询问用户在该单元格中输入什么文本,然后用户在单元格中输入文本,然后将其添加到表格视图中。谁能告诉我如何做到这一点?

【问题讨论】:

  • 我认为我不了解工作流程。您说“用户单击单元格中的添加按钮”以及“然后将其添加到表格视图中”但是,如果有一个包含按钮的单元格,则它必须已经在表格中。
  • 是的。添加按钮已经存在于具有默认文本的单元格中。当用户单击添加按钮时,用户必须能够编辑该特定单元格中的文本。用户在该单元格中输入文本后,必须添加另一个单元格,添加按钮并具有默认文本。

标签: objective-c ios cocoa-touch ipad uitableview


【解决方案1】:

我会将添加按钮放在页脚或页眉中,而不是放在单元格中,我个人认为管理单元格的添加会更容易。

除此之外,不知道您的问题究竟是什么,如果您将控制器设置为合适的委托,那么您可以通过访问所有相关方法轻松添加或删除单元格,尤其是那个:

- (void)tableView:(UITableView *)aTableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (editingStyle == UITableViewCellEditingStyleInsert) {
       // ......
    }
}

调用者:

[yourTableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath ] withRowAnimation:UITableViewRowAnimationAutomatic];

【讨论】:

    【解决方案2】:

    有一个类似(UITableViewCell *) createNewCellForTableView的方法。这将创建并返回 UITableViewCell。

    在您的CellForRowAtIndexPath 中,使用此方法为您的tableView 创建所有单元格。这需要以这种方式完成,因为当您执行[tableView reloadData]; 时,每次添加新单元格时都需要创建新单元格。

    最后,在创建新单元格后,在 ADD 按钮的 IBAction 中,确保重新加载 tableView。

    ~ 一个更简单的选择:

    由于您只是在寻找用户添加文本,您可以在 uitableViewcell 中嵌入textField。一旦用户完成输入,您就可以将文本添加到dataSource(填充tableView 的数组)并重新加载tableView。确保您拥有所需的文本字段 enabled 或 disabled。

    【讨论】:

      【解决方案3】:

      我就是这样做的,而且效果很好:

      首先,创建一个实例变量如下:

      int numRows = 0;
      

      实现方法numberOfRowsInSection如下:

      - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
          return numRows;
      }
      

      现在在我的应用程序中,在一个地方,我正在使用 REST API 并获取 JSON,我将 numRows 的值更新为 numRows = [jsondata count];

      编写你的方法cellForRowAtIndexPath,如果你有动态内容,你会希望它是这样。例如,在我的情况下,我正在使用 indexPath.row 并准备单元格并返回它。

      只有当变量 numRows 大于 0 时才会调用此方法。因此,一旦您有了动态内容,请按照我上面的说明更新 numRows 的内容并立即调用方法[YourtableView reloadData];


      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-26
        • 2019-04-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多