有没有办法滚动到集合中选定的UICollectionViewCell?

时间:2017-05-27 02:20:32

标签: ios swift uicollectionview uicollectionviewcell

我的应用中的模态视图控制器中有UICollectionView。当提出模态视图时,根据我从主视图传递到模态视图中的某些数据,将其中一个集合的单元格设置为选中。

我需要以编程方式将所选集合单元格滚动到视图中,一旦出现带有集合的模态视图...但是在填充集合视图时使用scrollToItem(at:at:animated:)(在cellForItemAt中)并不会#39 ;似乎工作。

因此,虽然我可以轻松地使用indexPath中可用的cellForItemAt在填充集合时滚动到所选单元格,因为这是不可能的,我可以' t弄清楚如何在完全填充和显示集合后滚动到当前选定的集合单元格。

我甚至无法使用笨重的方法,例如循环遍历所有收集单元格并检查哪些是手动选择的,因为它似乎无法循环通过当前不可见的单元格

帮助?

1 个答案:

答案 0 :(得分:0)

在Top上添加变量。

   private var didLayoutFlag: Bool = false

只需在viewDidLayoutSubviews方法中传递索引号(indexNO)即可。我正在使用水平滚动。

   override func viewDidLayoutSubviews() {
            super.viewDidLayoutSubviews()
            if self.colllecitonView != nil  {
                if !self.didLayoutFlag {
                    self.colllecitonView.scrollToItem(at:IndexPath(item: indexNO, section:0), at:.right, animated: false)
                    self.didLayoutFlag = true
                }
            }
        }