我有一个动画由于某种原因没有动画。
- (void)viewDidLoad
{
[super viewDidLoad];
self.navigationController.navigationBar.hidden = YES;
self.nameLabel.text = [self.name uppercaseString];
self.gradient1.alpha = .9;
self.gradient1.image = [UIImage imageNamed:@"heart.png"];
self.gradient1.animationImages = [[NSArray alloc] initWithObjects:
[UIImage imageNamed:@"gradiant1.png"],
[UIImage imageNamed:@"gradiant2.png"],
...
[UIImage imageNamed:@"gradiant26.png"], nil];
self.gradient1.animationDuration = .5;
self.gradient1.animationRepeatCount = 1;
[self updateStats:nil];
}
-(void)updateStats:(NSTimer*)timer{
Utilities *utility = [[Utilities alloc] init];
[utility getDataWithSSID:self.ssID completion:^(bool *finished, NSArray *objects) {
if (finished){
...
[self.gradient1 startAnimating];
}
self.twoSecTimer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self
selector:@selector(updateStats:)
userInfo:nil
repeats:NO];
}];
}
有时它动画一次或两次然后停止,即使计时器继续反复打击。其他时候它根本没有动画。但是,我有几个占位符按钮,我放在故事板上没有任何关系,每当我按下其中一个按钮时,它会在下次定时器点击时动画(实际上每当我点击屏幕时,即使我没有有任何类型的手势识别器..)。此外,当我在这个ViewController中添加我想要做的所有其他垃圾时,它会在每次调用它时进行动画处理。所以我认为这比我忘记了更深层次的东西。
答案 0 :(得分:1)
将动画触发器移动到该视图实际可见的时刻可能更好一点 - 因此viewDidAppear:
。
另外,创建递归计时器调度的方式让我感到颤抖。我想这对你很好,但我肯定会建议使用设置为repeats
的{{1}}标志。
YES