2

第一次加载视图时应用动画,但之后加载视图时 - 没有任何反应。

应该是直截了当的-但是...

编码:

- (void)viewDidAppear:(BOOL)animated{    
[self animateLabel];    
}

- (void)viewWillDisappear:(BOOL)animated{
[self.labelMarkTheSpot.layer removeAllAnimations];  
}

- (void)animateLabel{

UIViewAnimationOptions options = (UIViewAnimationOptionAutoreverse | UIViewAnimationOptionRepeat | UIViewAnimationOptionBeginFromCurrentState);

CGAffineTransform scaleFactor = CGAffineTransformMakeScale(1.1, 1.1);
[UIView animateWithDuration:0.2 delay:0 options:options animations:^{
    self.labelMarkTheSpot.transform = scaleFactor;        
}
completion:nil];
}

(在 viewWillAppear 中启动动画没有区别)

4

1 回答 1

3

在 的开头添加一行以animateLabel将视图重置为动画之前的比例:

self.labelMarkTheSpot.transform = CGAffineTransformMakeScale(1.0, 1.0);

发生的事情是一旦动画到 1.1、1.1;它保持这种状态,并且视图重新出现时的动画不会做任何事情(1.1 到 1.1)。通过将其重置为 1.0(或您想要的任何初始值,作为动画的起点),它将始终从 1.0 变为 1.1。

于 2013-01-21T17:05:30.710 回答