我知道一噸的人都問了同樣的問題,但沒有提出的解決方案似乎相關,所以我再次問: 我有下面的代碼塊:animateWithDuration立即完成
UIImageView *moneyHolder = [[UIImageView alloc] initWithImage:moneyImage];
if([paymentMethod.viewed intValue] == 0){
//CGRect targetFrame = CGRectMake(0, cell.frame.size.height/2-3, cell.frame.size.width, targetHeight);
CGRect targetFrame = moneyHolder.frame;
targetFrame.origin.y = cell.frame.size.height/2-3;
NSLog(@"animating");
[UIView animateWithDuration:2
delay:0
options: UIViewAnimationCurveEaseOut
animations:^{
moneyHolder.frame = targetFrame;
}
completion:^(BOOL finished){
NSLog(@"done");
}
];
}
我會認爲應該動畫我的錢箱框架。不幸的是,這似乎是立即發生的,而不是持續2秒。
2012-05-11 03:41:50.102 AgilePoet [5824:15203]動畫
2012-05-11 03:41:50.116 AgilePoet [5824:15203]已完成,我可以從我的日誌時間戳驗證這一點
有沒有人有任何想法,爲什麼這可能會發生?關於此主題的所有其他問題都集中在該屬性不具動畫性,但我知道一個imageview框架具有動畫能力。我唯一能想到的就是這段代碼寫在我的內部
-tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath method.
在此先感謝!
很高興看到你有什麼可能導致問題的理論。你可以通過將動畫代碼臨時複製到別的地方來測試它,看看它是否像你期望的那樣行事? –
以及我移動了willDisplayCell方法之外的代碼,它的工作......有誰知道爲什麼它不會在willDisplayCell內工作? – akhalsa
我的猜測是willDisplayCell的繪圖代碼會調用單元圖層上的removeAllAnimations,從而過早地結束您的動畫。 –