2013-04-23 97 views
1

我的問題是,我有一個UIContainerView有一個UITableView的子視圖。 當用戶按下按鈕時,此UIContainerView通過動畫化其幀大小切換打開/關閉。 我遇到的問題是,因爲幀大小立即設置並且動畫隨時間發生,所以在動畫完成之前,TableView單元格會「出列」並消失。我猜是因爲tableView認爲它不再被顯示。從隱藏UITableViewCells延遲UITableView

有沒有辦法延遲這一點,直到動畫完成。也許在+(void)animateWithDuration的完成部分:...

+0

我猜表格視圖也在動畫過程中調整大小?嘗試將表視圖設置爲在容器調整大小時不調整大小,並確保容器視圖不允許在邊界之外進行繪製(-clipsToBounds)。 – Wain 2013-04-23 12:25:11

+0

這可能是它,我想它可能會調整使用支柱和彈簧。 – 2013-04-23 12:38:59

回答

0
[UIView animateWithDuration:(NSTimeInterval) animations:^{ 
     //Animation code 
    } completion:^(BOOL finished) { 
     //after animation completion 
    }] 

我想你可以使用這個。在動畫之後你要做什麼,你可以在完成塊中寫下它。

+0

不,我知道該怎麼做。我在問題中說過 – 2013-04-23 12:38:15

2

一個快速和骯髒的解決方案將是在框架的底部添加一個不透明的UIView,並向上設置動畫效果以實現摺疊效果。在animateWithDuration方法的完成塊中,您可以更改容器視圖的框架。

如果不知道你想要達到的視覺效果,很難給出一個很好的答案。更正確的方法是刪除表格視圖單元格給動畫效果,但它可能看起來不太正確...