在我的tableview中,我需要爲每個單元格的UI設置動畫效果,因爲tableview會重新加載其數據。UITableView ReloadData動畫單元格UI
這需要一個自定義動畫,而不僅僅是一個淡入淡出或默認轉換。
例如,當點擊「編輯」按鈕時,在我的視圖中,tableview將重新加載,並且每個單元格將更新其用於此新編輯模式的UI。
但是,在此重新加載期間,我嘗試使用UIView
動畫塊來更新我的單元格中的UILabel
的約束,但它不會動畫。
這是我運行的代碼,當我在我的tableview上調用reloadData
。這在cellForRowAtIndexPath
方法中被調用。
[UIView animateWithDuration:0.3f delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^
{
//does not animate
_lblContainerLeftConstraint.constant = 18;
[self setNeedsLayout];
//does animate
_reorderIcon.alpha = 0.5f;
} completion:nil];
任何幫助將不勝感激,謝謝。
我認爲你需要在'willDisplayCell'中做到這一點。在動畫塊之前設置新的約束值並調用'[cell.contentView setNeedsLayout]'。然後在動畫塊中添加'[cell.contentView layoutIfNeeded]',該動畫塊應該在您的時間段內動畫約束變化。 –
這個伎倆!謝謝@RoryMcKinnel在下面放下正式答案,如果你喜歡,我會打勾。 –
很高興工作。發佈爲答案。 –