使用[self.view.layer removeAllAnimations]后,下一个动画无效

时间:2014-08-04 11:32:24

标签: ios objective-c

问题出在我使用时:

[transLabel.layer removeAllAnimations];

(transLabel是显示信息的UILabel

之后,我尝试向此Label添加新动画

[UIView animateWithDuration:showTime
             animations:^{
                 transLabel.hidden = NO;
                 transLabel.transform = CGAffineTransformMakeScale(1.5, 1.5);
             }
             completion:^(BOOL finished) {
                    transLabel.hidden = YES;
                    transLabel.transform = CGAffineTransformMakeScale(1.0, 1.0);
}];

但它已经不再适用了,它只是在奇数点击工作。比如,第一次它起作用,第二次它不起作用,但第三次它再次显示,不是,第五次是..

我想要做的是再次再次按下一个按钮 并再次使用动画再次显示标签

谢谢你,等待你的回答

2 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,则会出现问题,因为表示层会执行所有动画,并且是实际执行所有动画的图层。取消在表示层而不是视图层上反映的正在进行的动画时。尝试捕获对视图图层的更改,看看在这种情况下是否有帮助:

transLabel.layer.transform = transLabel.layer.presentationLayer.transform;

答案 1 :(得分:0)

我刚才有类似的问题。问题是,当你停止动画时,你会隐藏你的transLabel。

在[transLabel.layer removeAllAnimations]之后立即显示;像这样:

[transLabel.layer removeAllAnimations];
transLabel.hidden = NO;