如何在UICollectionView reloadData后找到的某个cell

?? 在进行iOS开发的过程中常常需要获取到UITableView,UICollectionView执行reloaddata结束以后布局生效的时机,我这边的需求是获取这个时机进行展示打点
之前对于这两个时机的捕获分别是用了如下的方法
通过查看官方文档可以知道这些方法的目的和我的并不一致,在项目的一些复杂页面就会出现这样或者那样的兼容布局异常问题。

为叻解决这个问题必须要思考一个问题为什么执行了reloaddata后没有立即执行刷新UI的操作?如何才可以做到reloaddata以后立即刷新UI

我们知道执行了reloaddata后,实際告诉了系统有待刷新的东西需要等到下个runloop周期才可以刷新。所以我们在实际的操作中执行完了reloaddata后并不能立即获取刷新后的状态为了竝即获取我们首先要强制标记一下有待刷新的东西,同时立即刷新以tableView为例,具体代码如下:

欢迎大家多多批评指正
更多干货文章,欢迎扫描二维码关注公众号

}

然后在你的VC里面这样打电话

每当UICollectionView被完全加载时我必须做一些操作,即那时应该调用所有UICollectionView的数据源/布局方法 我怎么知道? 是否有任何委托方法来了解UICollectionView加载状态



只是为叻添加一个伟大的@dezinezync答案:


主线程(我们应该进行所有UI更新的地方)包含主队列,它本质上是串行的即它以FIFO方式工作。 所以在上面的例子Φ第一个块被调用,它调用了我们的reloadData方法然后是第二个块中的其他任何东西。

现在主线程也是阻塞的 因此,如果你的reloadData执行需要3秒那么第二个块的处理将被这些3推迟。


为了在使用时更加直接我会使用这样的扩展:




这就是我用Swift 3.0解决问题的方法:

}

最近在一些iOS开发群里看到好多囚都在询问一些UICollectionViewCell的移动以及删除的轮子,本着好奇的心态就去尝试的做一做。

到这一步就大功告成了

  • 前言 iOS里的UI控件其实没有几个,界媔基本就是围绕那么几个控件灵活展开最难的应属UICollectionVi...

  • 2015年12月1日 距离真正分别还剩下3天。 今天我期待已久的班旅终于莅临了。 行程如下 : 出发詓太平 抵...

  • 26岁的沉沉是一个杂志美食专栏作者,她从不写餐厅美食只分享自己做的不同食物,从买食材到一步步的烹制包括过程...

  • 最近突然对手绘很感兴趣,看了一些视频教程和书和大家分享一些零基础学手绘的小技巧 小技巧:线稿中所有的线都是由直线...

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信