UICollectionView 无法滚动到指定位置/指定Cel

2016-12-14  本文已影响0人  Doublingli

今天开发中遇到一个小问题:

需求:在UICollectionView在展示之前显示到具体的某一个Cell上

在viewWillAppear()中调用scrollToItem(at:at:animate)不会使collectionView滚动

override func viewWillAppear(_ animated : Bool) {

    super.viewWillAppear(animated)

    if let index = indexPathToShow {

        //self.collectionView?.layoutIfNeeded()

        self.collectionView?.scrollToItem(at: index, at:UICollectionViewScrollPosition.centeredHorizontally, animated:false)

    }

}

原因可能是因为这个CollectionView使用了UICollectionViewFlowLayout

程序执行到scroll时这个CollectionView中很多(暂时不会用到的)subviews都还没有被layout,因此无法滚动到这个view上。

参考了StackOverFlow上的一个问题在scroll之前调用self.collectionView.layoutIfNeeded()

无论如何,它现在的确可以正常的滚动到正确的位置了

参考:http://stackoverflow.com/questions/14977896/xcode-collectionviewcontroller-scrolltoitematindexpath-not-working

上一篇下一篇

猜你喜欢

热点阅读