【问题标题】:UICollectionView -- get a callback when load is complete?UICollectionView - 加载完成时获得回调?
【发布时间】:2013-06-21 17:22:15
【问题描述】:

我有一个 UICollectionView。每个单元格包含一个 UITextField。我想要一个显示完成时的回调,所以我可以查询一个模型对象,它的 textField 应该是 firstResponder,然后使它成为 firstResponder。我可以得到那个回调吗?还是有另一种自然的方式来实现这一点?

【问题讨论】:

标签: ios uicollectionview


【解决方案1】:

如果您将layoutIfNeeded 消息发送到您的集合视图,它将在返回之前更新其子项(根据需要添加和删除单元格)。因此,您可以使其同步更新,然后执行您的重新加载后操作。

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

【讨论】:

  • architectpianist 的回答可能(也可能不会)对您更好,具体取决于您的情况。
  • 你对 UICollectionView 的回答真的很有帮助!
  • 我需要调用collectionView.collectionViewLayout.invalidateLayout(),因为在以编程方式滚动后,collectionView 布局错误(setContentOffsetscrollToItemAtIndexPath
【解决方案2】:

就实际的回调方法而言,我认为没有用于加载集合视图的方法。我知道的唯一一个是performBatchUpdates:completion,这完全不相关。不过,根据我的经验,集合视图已加载完毕,并在调用 viewDidAppear 时准备就绪,因此我将在此处设置第一响应者。

希望这会有所帮助!

【讨论】:

    【解决方案3】:

    从未尝试过,但您可以通过将代码放入

    dequeueReusableCellWithReuseIdentifier:forIndexPath:
    

    获取可见单元格的计数(可能是 [visibleCells 计数]),然后跟踪实际处理了多少,然后在所有显示后进行回调。不过,您必须重置滚动之间的计数。

    不干净,但应该可以。我不知道有什么方法可以得到回调。

    【讨论】:

      猜你喜欢
      • 2015-11-01
      • 1970-01-01
      • 2011-07-11
      • 2010-09-14
      • 1970-01-01
      • 1970-01-01
      • 2018-07-03
      • 2016-11-15
      • 2020-02-03
      相关资源
      最近更新 更多