我通過更改數據源來交換顯示在集合視圖中的數據。這是作爲標籤式界面的一部分完成的。當新數據加載時,我想刷新滾動指標以告訴用戶在視口外還有更多數據。更改數據源後UICollectionView的滾動滾動指示器
立即
否則立即不起作用,因爲集合視圖還沒有加載的數據尚未:
collectionView.dataSource = dataSource2;
[collectionView flashScrollIndicators]; // dataSource2 isn't loaded yet
dispatch_async
派遣flashScrollIndicators
呼叫後沒有按不管用:
collectionView.dataSource = dataSource2;
dispatch_async(dispatch_get_main_queue(), ^{
[collectionView flashScrollIndicators]; // dataSource2 still isn't loaded
});
performSelector:withObject:afterDelay:
定時延遲之後執行flashScrollIndicators
不工作(我看到其他地方的SO),但是示滾動指標,導致有些滯後。我能降低延遲,但現在看來似乎只會導致競爭條件:
collectionView.dataSource = dataSource2;
[collectionView performSelector:@selector(flashScrollIndicators) withObject:nil afterDelay:0.5];
有沒有我可以勾上儘快集合視圖回升閃爍滾動指標回調調整新的數據並調整內容視圖的大小?
你嘗試調用'[的CollectionView重新載入數據]'後設置新的數據源,並在發送'flashScrollIndicators'之前? –
你也許可以嘗試使用一個塊[像這樣](http://stackoverflow.com/a/10817187/1367622)重新加載數據並在完成時調用flashScrollIndicators。 –
緊接在'flashScrollIndicators'之前調用'reloadData'也不起作用,正如[zvjerka24]所述(http://stackoverflow.com/questions/1483581/get-notified-when-uitableview-has-finished-asking-for -data/10817187#comment20638630_10817187)。 –