iOS图像startAnimating不是动画(大部分时间)

时间:2013-02-28 22:34:41

标签: ios uiimageview

我有一个动画由于某种原因没有动画。

- (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中添加我想要做的所有其他垃圾时,它会在每次调用它时进行动画处理。所以我认为这比我忘记了更深层次的东西。

1 个答案:

答案 0 :(得分:1)

将动画触发器移动到该视图实际可见的时刻可能更好一点 - 因此viewDidAppear:

另外,创建递归计时器调度的方式让我感到颤抖。我想这对你很好,但我肯定会建议使用设置为repeats的{​​{1}}标志。

YES