0

我有一个UILabel,每次触摸时,它都会用动画进行缩放CGAffineTransformMakeScale,然后用动画恢复到真实大小。现在,如果它在最后一个动画结束之前触摸,它会缩放缩放的对象而不是主对象的实际大小,因此它的缩放比例会超过应缩放的比例。如何预防这个问题?我想在最后一次缩放结束缩放对象的主要大小之前第二次触摸。

这是我的代码:

(void)MyLabelTouched
{
[UIView animateWithDuration:.15 animations:^{
            MyLabel.transform = CGAffineTransformMakeScale(1.5,1.5);
        } completion:^(BOOL finished) {
            [UIView animateWithDuration:.15 animations:^{
                MyLabel.transform = CGAffineTransformIdentity;
            }];
        }];
}
4

1 回答 1

1

尝试这个

(void)MyLabelTouched
{ 
   if(animRunning){return;}
   animRunning = YES;
   [ MyLabel.layer removeAllAnimations];
    MyLabel.transform = CGAffineTransformIdentity;
   [UIView animateWithDuration:.15 animations:^{
        MyLabel.transform = CGAffineTransformMakeScale(1.5,1.5);
    } completion:^(BOOL finished) {
        [UIView animateWithDuration:.15 animations:^{
            MyLabel.transform = CGAffineTransformIdentity;
            animRunning = NO;
        }];
    }];
 }
于 2018-02-14T10:35:08.663 回答