CAKeyframeAnimation * anim = [ CAKeyframeAnimation animationWithKeyPath:@"transform"] ;
anim.values = @[ [ NSValue valueWithCATransform3D:CATransform3DMakeTranslation(-10.0f, 0.0f, 0.0f) ], [ NSValue valueWithCATransform3D:CATransform3DMakeTranslation(10.0f, 0.0f, 0.0f) ] ] ;
anim.autoreverses = YES;
anim.repeatCount = 2.0f;
anim.duration = 0.1f;
[cell.layer addAnimation:anim forKey:nil] ;
我编写上面的代码来动摇选择时的集合视图单元格。当我第一次看到屏幕后,收集视图单元格的框架不匹配。当我再次访问视图时它工作正常。 请帮我解释为什么在添加动画后第一次创建问题,如果我删除动画,那么第一次也没有不匹配,但我需要触摸动画。
当我再次访问此视图并执行该部分时,没有框架不匹配。在首次访问视图时首次选择时会出现问题。
答案 0 :(得分:2)
我得到了这个问题的解决方案,为什么集合视图单元格的框架不匹配。它是由于ToastView引起的。我正在通过吐司显示超出的图像消息。现在我使用警报视图,它工作正常....
答案 1 :(得分:0)
您可以使用以下代码进行摇动视图。
#pragma mark
#pragma mark - ANIMATION SHAKE
- (void)shake:(UIView *)shakeView {
CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"transform.translation.x"];
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
animation.duration = 0.6;
animation.values = @[ @(-10), @(10), @(-10), @(10), @(-5), @(5), @(-2.5), @(5), @(0) ];
[shakeView.layer addAnimation:animation forKey:@"shake"];
}