我有一个UICollectionView,每个单元格中包含一个UITextField。我想在显示完成后进行回调,以便查询模型对象,找到应该成为第一响应者的textField,然后将其设置为第一响应者。我能获得这个回调吗?或者还有其他自然的方法可以实现这个功能吗?
我有一个UICollectionView,每个单元格中包含一个UITextField。我想在显示完成后进行回调,以便查询模型对象,找到应该成为第一响应者的textField,然后将其设置为第一响应者。我能获得这个回调吗?或者还有其他自然的方法可以实现这个功能吗?
layoutIfNeeded
消息,则在返回之前,它将更新其子项(根据需要添加和删除单元格)。因此,您可以使其同步更新,然后执行后重载操作。[myCollectionView layoutIfNeeded];
[self chooseFirstResponderFromCells:myCollectionView.visibleCells];
collectionView.collectionViewLayout.invalidateLayout()
,因为在编程滚动(setContentOffset
或 scrollToItemAtIndexPath
)后,某种原因导致 collectionView 布局错误。 - Luca D'Alberti就实际的回调方法而言,我认为没有针对集合视图加载的回调方法。 我所知道的唯一一个是performBatchUpdates:completion
,但那与此无关。 但是根据我的经验,集合视图在调用viewDidAppear
时已经加载并准备好了,因此我会在那里设置第一个响应者。
希望这可以帮助你!
我从未尝试过,但你可以通过将代码放入其中来实现
dequeueReusableCellWithReuseIdentifier:forIndexPath:
要获取可见单元格的数量(可能是[visibleCells count]),然后跟踪实际处理了多少个单元格,最后在所有单元格都显示后进行回调。不过,在滚动之间必须重置计数。
这样做不太干净,但应该可以工作。我不知道有没有其他方法可以进行回调。