我正在使用didMoveToWindow:
来触发带有自定义UICollectionViewCell的动画。奇怪的是......第一和第二单元格中的动画完美运行(以及应该调用的所有方法)......
...对于第3个单元格,它会显示,但{3}},didMoveToWindow:
,willMoveToWindow:
和didMoveToSuperview:
都不会被调用。我甚至试过willMoveToSuperview:
,它从未被称为......
我不明白如何在没有调用drawRect:
的情况下在屏幕上绘制。
在drawRect:
我刚刚打印到日志中,然后调用了超级实现。即使从未调用/打印日志消息,这样做确实将背景变为黑色(通常是透视)。所以必须......做了些什么......?
每个单元格出现在该位置周围,然后移动到位。背景表示UICollectionView的框架..以显示所有内容都在边界内。
更新
我尝试使用drawRect:
,但同样的事情......它只需要前两个单元格。但是,当插入第3个单元格并重新加载第2个单元格时,第2个调用didAddSubview:
...集合视图的可见单元格数为3。
UPDATE2:
当我通过Xcode查看视图层次结构时,它会将所有3个单元格显示为集合的子视图....但不知何故,它只是为前两个调用didAddSubview:
addSubview:
..奇怪的
答案 0 :(得分:0)
过去几天忙于其他工作,昨晚又回到了这个问题......神奇地说虫子已经消失了! (在我做过一些意外重构之后)。
在我做“performBatchUpdates:”之前,我1)重新加载了前一个单元格,2)插入了新单元格。当我这样做时,视图生命周期事件从未在插入的单元格上调用(从第3个单元格开始)。
当我切换到手动重新加载前一个单元格的视图(只是更改掩码视图,因此没有理由正式重新加载单元格)时通过使用“cellForItemAtIndexPath:”捕获它,并且仅执行执行批量更新中的插入...我现在收到插入单元格的所有正确的视图生命周期事件。
所以这个错误就在那里。