今天開(kāi)發(fā)中遇到一個(gè)小問(wèn)題:
需求:在UICollectionView在展示之前顯示到具體的某一個(gè)Cell上
在viewWillAppear()中調(diào)用scrollToItem(at:at:animate)不會(huì)使collectionView滾動(dòng)
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)
}
}
原因可能是因?yàn)檫@個(gè)CollectionView使用了UICollectionViewFlowLayout
程序執(zhí)行到scroll時(shí)這個(gè)CollectionView中很多(暫時(shí)不會(huì)用到的)subviews都還沒(méi)有被layout,因此無(wú)法滾動(dòng)到這個(gè)view上。
參考了StackOverFlow上的一個(gè)問(wèn)題在scroll之前調(diào)用self.collectionView.layoutIfNeeded()
無(wú)論如何音瓷,它現(xiàn)在的確可以正常的滾動(dòng)到正確的位置了