iOS - 重新加载单元格时,UICollectionView阴影闪烁

时间:2016-02-01 13:45:02

标签: ios objective-c iphone

在我的集合视图中,我在集合单元格中添加了带阴影的自定义视图。

我使用以下代码为视图添加了阴影。

    cell.shadowView.backgroundColor = [UIColor greenColor];
    cell.shadowView.layer.masksToBounds = NO;
    cell.shadowView.layer.shadowColor = [UIColor redColor].CGColor;
    cell.shadowView.layer.shadowOffset = CGSizeMake(-2.0f, 2.0f);
    cell.shadowView.layer.shadowOpacity = 1.0f;
    cell.shadowView.layer.shadowRadius = 4.0f;
    cell.shadowView.layer.shouldRasterize = YES;
    cell.shadowView.layer.rasterizationScale = [UIScreen mainScreen].scale;

每当我重新加载单元格时,重新加载的单元格每次都会闪烁。 以下代码用于重新加载单元格。

    [self.collectionView performBatchUpdates:^{
        NSIndexPath* indexPath = [NSIndexPath indexPathForRow:1 inSection:0];
        NSArray* indexPathArray = [NSArray arrayWithObjects:indexPath, nil];
        [self.collectionView reloadItemsAtIndexPaths:indexPathArray];

    } completion:nil];

我想在重新加载单元格时避免这种闪烁。

我可以通过在 [UIView performWithoutAnimation:^ {}] 动画块中运行 performBatchUpdates 来避免闪烁。但它会导致现有动画代码破损。

有没有办法避免这个闪烁的问题?

谢谢。

0 个答案:

没有答案