4
我想在UITableViewCell裏面啓動一個動畫,但除非我做一些傻事,否則它不會啓動。代碼被調用,但動畫不會做任何事情。如果我把它放在dispatch_async
之內,那麼它就會起作用。爲什麼會發生?爲了讓動畫開始,我需要等待什麼?UITableViewCell子視圖動畫時序怪異
- (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;
}
}
我以爲像這樣...但如果是這樣的話,那麼這段代碼是如此脆弱。你知道任何會提醒我這個事實,即這個單元格在屏幕上,準備好接收動畫嗎? – borrrden
也許mViewToAnimate.superview – Rich86man
也是界限 – Rich86man