Ios 单击按钮添加其他不起作用的文本字段

Ios 单击按钮添加其他不起作用的文本字段,ios,swift,swift4,Ios,Swift,Swift4,我有一个投票系统,用户可以在其中创建投票。每个投票必须至少有两个选项,最多可以有四个选项 现在,每个文本字段都有一个集合视图单元格,我将其中的两个单元格初始加载到轮询的集合视图中 单击按钮时,我想添加另一个集合视图单元格,以便显示另一个文本字段 但是,无论出于何种原因,如果我在第一个和第二个文本字段中键入文本,然后再添加两个集合视图单元格,它会在第二个文本字段下方添加一个文本字段,在第一个文本字段上方添加一个文本字段,而此时它应该将它们全部添加到底部 下面是正在发生的事情的视觉效果: +----

我有一个投票系统,用户可以在其中创建投票。每个投票必须至少有两个选项,最多可以有四个选项

现在,每个文本字段都有一个集合视图单元格,我将其中的两个单元格初始加载到轮询的集合视图中

单击按钮时,我想添加另一个集合视图单元格,以便显示另一个文本字段

但是,无论出于何种原因,如果我在第一个和第二个文本字段中键入文本,然后再添加两个集合视图单元格,它会在第二个文本字段下方添加一个文本字段,在第一个文本字段上方添加一个文本字段,而此时它应该将它们全部添加到底部

下面是正在发生的事情的视觉效果:

+----------------------+
| First text           |
+----------------------+

+----------------------+
| Second text          |
+----------------------+

Add field button
当我两次单击“添加字段”按钮时,会发生以下情况:

+----------------------+
|                      |
+----------------------+

+----------------------+
| First text           |
+----------------------+

+----------------------+
| Second text          |
+----------------------+

+----------------------+
|                      |
+----------------------+
我不知道它为什么这么做,这让我发疯

这是我的代码(删去不重要的内容):


我做错了什么???

itemForRow
中发生了什么事?@vadian我更新了代码以显示您可以发布新的PollOptionCollectionViewCell类吗?cell.initialize中发生了什么??这就是indexPath和单元格内容之间的对应关系。如果您只想追加而不是重新加载整个collectionView,那么您可以只使用用户
插入项
。例如:`self.numploptions+=1 pollCollectionView.insertItems(位于:[IndexPath(行:numploptions-1,节:.0)])`
// Holds the total number of poll options (initially 2, up to 4)
var numPollOptions: Int = 2

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return numPollOptions
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "NewPollOptionCollectionViewCell", for: indexPath as IndexPath) as? NewPollOptionCollectionViewCell else {
        fatalError("The dequeued cell is not an instance of NewPollOptionCollectionViewCell.")
    }
        
    cell.presentingViewController = self
    cell.initialize(indexPath: indexPath)
        
    return cell
}

@IBAction func onAddPollOptionButtonTapped(_ sender: Any) {
    self.numPollOptions += 1

    // Allow no more than 4 poll options
    if (numPollOptions >= 4) {
        addPollOptionButton.isHidden = true
    }
    
    self.pollCollectionView.reloadData()
}