2016-12-15 3 views
0

У меня проблемы с анимацией. Вот некоторые коды:проблема в использовании «UIView animateWithDuration: ......»

//wobbling cells in collection view controller 
if (_isEdit){ 
    myCell.transform = CGAffineTransformMakeRotation(-0.01); 

    [UIView animateWithDuration:0.12 
          delay:0.0 
         options:UIViewAnimationOptionRepeat|UIViewAnimationOptionAutoreverse|UIViewAnimationOptionAllowUserInteraction|UIViewAnimationOptionCurveLinear 
        animations:^{ 
         myCell.transform = CGAffineTransformMakeRotation(0.01); 
        } completion:nil]; 
} 

Что я хочу, когда «_isEdit == YES;» клеток.

Но если я нажимаю на другой ViewController, когда ячейки разбухают, затем увольняют. Остановка анимации («_isEdit» по-прежнему «ДА») ...

Как я могу сохранить анимацию?

+0

используйте 'self.isEdit', а затем попробуйте. – PiyushRathi

ответ

0

Если я правильно понял вопрос, вы можете просто вызвать метод снова в viewDidAppear, и он должен начать снова.

- (void)viewDidAppear:(BOOL)animated; 

Если код от:

- (UITableViewCell *)tableView:(UITableView *)tableView 
    cellForRowAtIndexPath:(NSIndexPath *)indexPath; 

, то вы можете попробовать просто перезагрузить Tableview, вызвав reloadData на Tableview в методе viewDidAppear. Если параметр _isEdit по-прежнему равен YES, анимация должна снова запускаться.

+0

Thx ~ это работает ... но похоже, что у него нет гладкости ... – kung

+0

Вы можете попробовать позвонить ему из разных частей жизненного цикла контроллера вида, например viewWillAppear. Если это вас не устраивает, возможно, вам придется переосмыслить свою структуру (также, если она работает, это должно быть отмечено как ответ). –

Смежные вопросы