我制作了一个UICollectionView,一切正常。它可以在模拟器中滚动100个单元格,没有任何问题。
然而,我不想一次看到所有细胞,而是每当按下红色按钮时,我希望细胞一个接一个地释放。
我很困惑因为我在故事板中注意到,它一次硬编码它在屏幕上的单元格数量。有没有办法解决这个问题?
谢谢!
答案 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。