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()
}