我將我的iOS應用程序代碼遷移到Swift 4,並且在我的集合視圖中重新載入數據方法不起作用。我搜索並嘗試了很多東西,但沒有人工作。它在Swift 3中工作了一個多月,所以我不知道發生了什麼。UICollectionView重載數據在swift中不起作用4
此代碼是案例之一:
private func setLevelLessons(){
let operationsDB = DBOperations()
self.indexInformation = operationsDB.getIndex(forLevel: self.currentLevel)
self.numLessons = (self.indexInformation?.count)!
DispatchQueue.main.async {
self.lessonsCollectionView.reloadData()
}
}
我調用此函數一個按鈕被點擊時。點擊時,我從數據庫中獲取數據並重新加載收藏視圖。我檢查數據是否正確,這不是問題。
我打印的項目時,下一個方法被調用,並在第一和第二次點擊被稱爲(在按鈕第二沒有必要,無論在屏幕)
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
可能是什麼回事?
檢查'numOfRowAtIndexPath'返回計 –
@SalmanGhumsani該值是正確的,我把它從'numLessons'變量。 – CipherCit
我遇到過類似的效果,對於我_ _ collectionView reloadData _ _之前的_ [collectionView.collectionViewLayout invalidateLayout] _工作。在我的情況下,collectionview-viewcontroller(obj-c)是一個快速視圖控制器的子視圖控制器。 – Apoc