2016-12-15 120 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”仍为“YES”)...

我该如何保持动画的工作?

+0

使用'self.isEdit'然后尝试。 – PiyushRathi

回答

0

如果我正确地理解了这个问题,您可以在viewDidAppear中再次调用该方法,并且它应该重新开始。

- (void)viewDidAppear:(BOOL)animated; 

如果代码是:

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

,那么你可以尝试只通过调用reloadData上的tableView在viewDidAppear方法重载的tableView。如果_isEdit仍然等于YES,那么动画应该再次触发。

+0

Thx〜它的作品...但它似乎有点不平滑...... – kung

+0

你可以尝试从视图控制器生命周期的不同部分调用它,如viewWillAppear。如果这不适合你,你可能不得不重新考虑你的结构(如果它有效,它应该被标记为答案)。 –