2014-12-05 50 views
3

我有一個UICollectionViewUICollectionViewFlowLayout其中包含許多項目。由於用戶輸入,我想重新排序單元格。UICollectionView在moveItemAtIndexPath後停止加載單元格:toIndexPath:

[self.collectionView moveItemAtIndexPath:indexPath toIndexPath:newIndexPath]; 

這段代碼執行後,集合視圖不更新滾動時,它的內容。它不顯示下一個單元格。它甚至不叫cellForItemAtIndexPath:,但它的內容大小是正確的(佈局「更新」它的狀態)。 因此,我們只能看到在重新排序之前分佈在集合視圖上的單元格。 任何線索可能是什麼問題?這個問題有沒有已知的解決方法?該應用程序僅適用於iOS 8,集合視圖與UICollectionViewFlowLayout一起使用。

編輯:當我打電話[self.collectionView reloadData];甚至沒有要求數據源。

回答

0

問題出在UICollectionViewCell。高級描述是在移動動畫期間從我的代碼中發送一個方法actionForKey。它導致細胞停留在內部being animated狀態。我無法找到合理的解決方法並重構了一些位以避免撥打actionForKey。現在一切都按預期工作。

+0

請問,你能解釋一下嗎,你在哪裏找到'正在動畫'的狀態?我有一個類似的問題,不加載新單元格(在完全不同的,但非常複雜的情況下),我想找到是什麼原因造成它... – 2016-04-15 13:24:25

+1

@MatejVargovčík說實話,我不記得了。我認爲這意味着我從我的代碼中調用了'actionForKey',並導致單元格「認爲」它正在動畫化。你可以在這裏找到更多關於actionForKey的信息:https://www.objc.io/issues/12-animations/animating-custom-layer-properties/ – wczekalski 2016-04-15 13:31:09

相關問題