如何可靠地确定 UICollectionView 布局何时完成动画
Posted
技术标签:
【中文标题】如何可靠地确定 UICollectionView 布局何时完成动画【英文标题】:How to reliably determine when UICollectionView layout has finished animating 【发布时间】:2013-07-21 04:18:00 【问题描述】:我在想办法确定 UICollectionView 何时/已完成动画制作时遇到了问题。
我目前有一个 UICollectionView,它使用 setCollectionViewLayout:animated:
在两个子类流布局之间进行动画处理
动画看起来很棒,但是,如果用户在动画期间选择了一个单元格,我会有一些不良行为。
我正在考虑通过 UICollectionViewDelegate
方法 collectionView:shouldSelectItemAtIndexPath:
返回 NO
来忽略单元格“选择” - 但是 - 我无法找到可靠的测试来查看集合视图当前是否正在动画。
有什么想法吗?
【问题讨论】:
【参考方案1】:尝试检查是否没有动画键。BOOL isAnimating = myView.layer.animationKeys.count > 0
【讨论】:
谢谢 - 成功了。有趣的是,我必须检查动画单元格上的动画键,而不是 UICollectionView。这意味着遍历可见单元格检查动画。我的最终代码 ..- (BOOL)collectionView:(UICollectionView *)collectionView shouldSelectItemAtIndexPath:(NSIndexPath *)indexPath NSArray *visibleCells = [self.myCollectionView visibleCells]; for (UICollectionViewCell *cell in visibleCells) if (cell.layer.animationKeys.count > 0) return NO; return YES;
(注意,导入 QuartzCore.h 以访问 layer
)以上是关于如何可靠地确定 UICollectionView 布局何时完成动画的主要内容,如果未能解决你的问题,请参考以下文章
如何通过关闭连接可靠地确定主体长度(RFC 2616 4.4.5)
当成功有时会导致退出代码为 1 时,如何可靠地确定 pg_restore 是不是成功?