如何在动画期间清除集合视图单元的视图/图层缓存?

时间:2015-02-16 17:45:59

标签: ios objective-c swift animation

我使用Facebook POP库为登录按钮设置动画。 POP通过将自身附加到图层来工作,然后对其进行动画处理。当我使用collectionview单元格执行此操作时,我会在动画期间的整个时间内看到相同的视图。

例如,让我们将其缩小到一个小尺寸:

func scaleDown() {
    self.selected = false // just in case?
    self.backgroundView?.alpha = 0 // nil at runtime
    self.selectedBackgroundView?.alpha = 0 // nil at runtime

    let anim = POPSpringAnimation(propertyNamed:kPOPLayerBounds);
    anim.toValue = NSValue(CGRect:CGRectMake(0, 0, 80, 80))
    // Sign up view is a UIView subview of the cell showing 
    // the rounded corner button
    signupView.layer.pop_addAnimation(anim, forKey: "size")
}

初始状态
Initial

完成状态
Finish

在我打电话的这个电话中,

backgroundViewselectedBackgroundView实际上都是零。所以不是那些。什么使这个背景层保持在那里,我怎么能摆脱它,所以我可以控制单元格内的图层动画?

在iOS 8.0,8.1,8.3上测试

更新(2015年2月17日)

我已将此信息隔离到https://github.com/jamztang/CSStickyHeaderFlowLayout

1 个答案:

答案 0 :(得分:0)

如果设置signupView.layer.needsDisplayOnBoundsChange = YES,您应该会在动画期间看到它正确更新。