【问题标题】:How to reliably determine when UICollectionView layout has finished animating如何可靠地确定 UICollectionView 布局何时完成动画
【发布时间】:2013-07-21 04:18:00
【问题描述】:

我在想办法确定 UICollectionView 何时/已完成动画制作时遇到了问题。

我目前有一个 UICollectionView,它使用 setCollectionViewLayout:animated: 在两个子类流布局之间进行动画处理

动画看起来很棒,但是,如果用户在动画期间选择了一个单元格,我会有一些不良行为。

我正在考虑通过 UICollectionViewDelegate 方法 collectionView:shouldSelectItemAtIndexPath: 返回 NO 来忽略单元格“选择” - 但是 - 我无法找到可靠的测试来查看集合视图当前是否正在动画。

有什么想法吗?

【问题讨论】:

    标签: objective-c uicollectionview


    【解决方案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
    猜你喜欢
    • 1970-01-01
    • 2017-09-17
    • 2012-10-11
    • 2016-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-31
    相关资源
    最近更新 更多