Swift按钮逐个输出UICollectionView单元格?

时间:2018-03-27 21:38:21

标签: ios swift xcode uicollectionview uicollectionviewcell

我制作了一个UICollectionView,一切正常。它可以在模拟器中滚动100个单元格,没有任何问题。

然而,我不想一次看到所有细胞,而是每当按下红色按钮时,我希望细胞一个接一个地释放。

我很困惑因为我在故事板中注意到,它一次硬编码它在屏幕上的单元格数量。有没有办法解决这个问题?

谢谢!

This is what the UI looks like in storyboard.

This is the code I used to make it. It's basic, and just says to fill the text box of the cell with a string from the array.

2 个答案:

答案 0 :(得分:1)

你的问题是乱码。

集合视图具有委托和数据源。数据源响应UICollectionViewDataSource协议中的消息。该协议允许集合视图询问它具有多少部分,每个部分中有多少行,以及从这些部分和行中请求单元格。

还有一些方法可以告诉表视图您要添加更多单元格。看一下方法insertItems(at:)。这允许您提供一个indexPaths数组,它告诉表视图您已添加新条目。

您当然可以编写一个按钮操作方法,将一个或多个条目添加到数据模型中,然后使用insertItems(at:)方法通知集合视图它有新条目。如果集合视图的内容视图中有空间显示其他单元格,则它将调用数据源并在这些索引路径上请求新单元格。

答案 1 :(得分:0)

听起来你只需要跟踪你想要显示多少项(这将增加按钮被按下的次数),并在你的UICollectionViewDataSource方法中使用它。类似的东西:

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return min(myRunningItemCount, maximumNumberOfItems) //assuming there's a maximum
}

然后,只要该数字发生变化,您就需要在集合视图上调用reloadData。