0
我有一個動畫,由於某種原因不動畫。iOS的圖像startAnimating不是動畫(大部分時間)
- (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中添加所有其他垃圾時,它會每隔一段時間調用一次它的動畫。所以我認爲這是比我忘記的更深的東西,所以設置一些財產。
看起來好像你在遞歸調用updateStats :.遞歸調用影響UI的方法時,我看到了UI鎖定。在updateStats中放置一個斷點:進行驗證。 – groomsy 2013-02-28 23:12:16
它做得很好,沒有鎖定。我必須這樣做,因爲遞歸調用實際上是在另一個函數調用的完成塊內。 – 2013-02-28 23:16:21