[英]How to determine when a custom UICollectionViewCell is 100% on the screen
[英]How can I determine when a UICollectionViewCell is displayed?
我想知道什么时候在实际屏幕上显示UICollectionViewCell
。 cellForRowAtIndexPath
不足,因为此时实际上没有看到该单元格。 didEndDisplayingCell
不足,因为从视图中删除单元格时会调用它。
UITableViewDelegate
有一个willDisplayCell
方法,我发现它在过去对类似的东西很有用,但它似乎不存在于UICollectionViewDelegate
。
如何确定电池何时被带到屏幕上?
UICollectionViewCell
的子类。 覆盖其didMoveToWindow
方法:
- (void)didMoveToWindow {
if (self.window != nil) {
// I am now in the window's view hierarchy and thus “on screen”.
}
}
从技术上讲,单元格仍然是不可见的,因为它在窗口的可见边界之外,或者因为它被另一个视图覆盖。 但通常情况都不是这样。
另请注意,如果重用单元格,则可能无法从视图层次结构中删除并重新添加该单元格。 集合视图只能更改单元格的框架。 (我知道UITableView
使用iOS 6.0中的表格视图单元格。)在这种情况下,当单元格重新用于另一个项目时,您将不会收到didMoveToWindow
消息。
如果你解释为什么你想知道什么时候显示一个单元格,我们可能会给你一个更好的答案。
-[UICollectionView visibleCells]
返回screnn上可见的所有单元格的NSArray
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.