2013-06-25 24 views
7

我有一個UICollectionView。每個單元格包含一個UITextField。當顯示完成時我想要一個回調,因此我可以查詢一個modelField應該是firstResponder的模型對象,然後將其設置爲firstResponder。我可以得到這個回調嗎?還是有另一種自然的方式來完成這個?UICollectionView - 當加載完成時得到一個回調?

+0

嘗試這種解決方案,感覺清潔:http://stackoverflow.com/a/39425374/2664531 – Darko

回答

10

如果您將layoutIfNeeded消息發送到您的收藏視圖,它將在返回之前更新其子項(根據需要添加和刪除單元格)。因此,您可以使其同步更新,然後執行重新加載操作。

[myCollectionView layoutIfNeeded]; 
[self chooseFirstResponderFromCells:myCollectionView.visibleCells]; 
+0

architectpianist的答案可能(或可能不會)對你更好,根據您的情況。 –

+0

您對UICollectionView的回答非常有幫助! –

+0

我需要調用'collectionView.collectionViewLayout.invalidateLayout()',然後因爲某種原因,在編程式滾動('setContentOffset'或'scrollToItemAtIndexPath')後,collectionView被錯誤地佈局 –

0

從來沒有嘗試過,但你可以通過把代碼

dequeueReusableCellWithReuseIdentifier:forIndexPath: 

這樣做是爲了讓看得見細胞的數量(也許[visibleCells計算])然後跟蹤有多少人真正被處理,然後讓你的回調畢竟已經顯示出來。但你必須重置滾動條之間的計數。

不乾淨,但應該工作。我不知道有什麼方法可以讓回調短。

5

至於一個實際的回調方法,我不認爲有一個用於集合視圖加載。我知道的唯一一個是,這是非常無關的。然而,根據我的經驗,收集視圖已加載,並在調用時間爲viewDidAppear之前準備就緒,因此我將在那裏設置第一個響應者。

希望這會有所幫助!

相關問題