Swift 4 - 将新行从数组插入到只有一个静态行的部分

Posted

技术标签:

【中文标题】Swift 4 - 将新行从数组插入到只有一个静态行的部分【英文标题】:Swift 4 - Insert a new rows from array to section with only one static row 【发布时间】:2018-05-18 08:00:32 【问题描述】:

我的 tableView 在开始时有 n 部分。每个部分只有一行,但每一行都包含从数组中添加到部分行的按钮。

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int

    let postModel = self.postsArray[section];

    if (self.currentSection == section)
    
        return 1 + (postModel.comments?.count)!;
    
    else
    
        print("nie rozszerzone")

        return 1;
    


func numberOfSections(in tableView: UITableView) -> Int

    return self.postsArray.count;

我试图这样做

func showComments(model: MGPostModel, sender: MGCommunityPostTableViewCell)

    guard let path = self.communityTableView.indexPath(for: sender) else 
        return;
    

    print(path)
    print(model.comments?.count as Any)

    self.currentSection = path.section;
    //model.comments.count is equal 3
    let indexPath = IndexPath(row: (model.comments?.count)!, section: path.section);

    print(indexPath)

    self.communityTableView.beginUpdates();
    self.communityTableView.insertRows(at: [indexPath], with: .automatic);
    self.communityTableView.endUpdates();

    //self.communityTableView.reloadRows(at: [indexPath], with: .automatic);

但响应是“无效更新:第 0 节中的行数无效。更新后现有节中包含的行数 (4) 必须等于更新前该节中包含的行数 ( 1), 加上或减去从该节插入或删除的行数(1 插入,0 删除)..."

我知道 numberOfRows 需要 4 行,但为什么 insertRows 在应该插入 3 行时尝试只插入一个?

【问题讨论】:

【参考方案1】:

第 1 步:- 您必须更新 tableview 方法中使用的行数数据。前-> myarray.count postModel.cmets?.count --> 在插入一行之前更新它。

第 2 步:- 更新行数数据后,您可以进行更新、添加或删除行或重新加载表格视图。

注意:在您的代码中,没有任何数据更新用于声明 tableview 中的行数。

【讨论】:

【参考方案2】:

您必须在修改表操作(删除、插入、移动)之前更新您的日期源

在这一行之前

let indexPath = IndexPath(row: (model.comments?.count)!, section: path.section);

写这个,插入新元素

model.comment.append(newelement)

【讨论】:

【参考方案3】:

@Abdelahad Darwish,@Rakesh Patelyes,我知道,但是。

索引为 0 的行是 postModel,其中包含名为 comment 的数组。我不想将 postModel 添加到评论数组中。

应该是这样的:

第 0 节:

第 0 行 - 后模型 第 1 行 - 评论[0] 第 n 行 = 评论 [n]

因此,如果我向 postModel.comment 添加一些内容,它将破坏此层次结构。

【讨论】:

以上是关于Swift 4 - 将新行从数组插入到只有一个静态行的部分的主要内容,如果未能解决你的问题,请参考以下文章

在vba中从查询填充数组然后将数据插入表中

Laravel - 将多个数组作为新行插入?

PHP插入表不创建新的数据行

JS数组到PHP并使用PDO更新MYSQL中的表

SWIFT - UIimagepicker 将图像分配到数组中

SSIS 2012 - 插入新行,忽略现有行