我在UICollectionView中有一个摇动单元格图标的简单动画,类似于弹跳板编辑模式。动画在iOS 6中运行良好,但在iOS 7中无效。
以下是示例代码。
- (void)startQuivering
{
CABasicAnimation *quiverAnim = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
float startAngle = (-1) * M_PI/180.0;
float stopAngle = -startAngle;
quiverAnim.fromValue = [NSNumber numberWithFloat:startAngle];
quiverAnim.toValue = [NSNumber numberWithFloat:3 * stopAngle];
quiverAnim.autoreverses = YES;
quiverAnim.duration = 0.12;
quiverAnim.repeatCount = HUGE_VALF;
float timeOffset = (float)(arc4random() % 100)/100 - 0.50;
quiverAnim.timeOffset = timeOffset;
CALayer *layer = self.layer;
[layer addAnimation:quiverAnim forKey:@"quivering"];
}
同样地限制颤抖的动画。
- (void)stopQuivering
{
CALayer *layer = self.layer;
[layer removeAnimationForKey:@"quivering"];
}
在我的自定义UICollectionViewCell类中的applyLayoutAttributes:方法中调用这些方法,具体取决于长按手势和相关标志
我无法弄清楚问题,所以我需要开发人员的帮助。
答案 0 :(得分:1)
最后解决了这个问题。它类似于这个问题How to refresh UICollectionViewCell in iOS 7? -applyLayoutAttributes:没有被正确调用,可以通过覆盖自定义UICollectionViewLayoutAttributes子类中的isEqual:方法并调用super -applyLayoutAttributes来解决问题:。