我正在尝试在 UITableViewCell 内启动动画,但除非我做一些愚蠢的事情,否则它不会启动。代码被调用,但动画什么也不做。如果我通过将它放在 a 中来延迟它,dispatch_async
那么它将起作用。为什么会这样?我需要等待什么才能开始动画?
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
if(mNeedsAnimation)
{
//this will delay it a bit and make it work, but why?
//dispatch_async(dispatch_get_main_queue(), ^(void){ (
mViewToAnimate.transform = CGAffineTransformMakeScale(0.5f, 0.5f);
mViewToAnimate.hidden = NO;
mViewToAnimate.alpha = 1.f;
[UIView animateWithDuration:1 delay:0 options:UIViewAnimationOptionRepeat|UIViewAnimationCurveLinear animations:^{
mViewToAnimate.alpha = 0.0;
mViewToAnimate.transform = CGAffineTransformMakeScale(1.f, 1.f);
}completion:nil];
//});
mNeedsAnimation = NO;
}
}