我有一个UICollectionView。每个单元格包含一个UITextField。我希望在显示完成时进行回调,因此我可以查询一个模型对象,textField应该是firstResponder,然后将其作为firstResponder。我能收到回电吗?或者还有另一种自然的方法来实现这一目标吗?
答案 0 :(得分:10)
如果您将layoutIfNeeded
消息发送到集合视图,它将在返回之前更新其子节点(根据需要添加和删除单元格)。因此,您可以使其同步更新,然后执行重新加载后的操作。
[myCollectionView layoutIfNeeded];
[self chooseFirstResponderFromCells:myCollectionView.visibleCells];
答案 1 :(得分:5)
就实际的回调方法而言,我认为没有一个用于集合视图加载。我所知道的唯一一个是performBatchUpdates:completion
,这是非常不相关的。但是根据我的经验,集合视图在viewDidAppear
被调用的时候已经加载并准备就绪,所以我会在那里设置第一个响应者。
希望这有帮助!
答案 2 :(得分:0)
从未尝试过,但您可以通过将代码放入
来实现dequeueReusableCellWithReuseIdentifier:forIndexPath:
获取可见单元格的数量(可能[visibleCells count])然后跟踪实际处理的数量,然后显示所有回调。你必须在滚动之间重置计数。
不干净,但应该有效。我不知道有什么方法可以得到回调。