2011-11-06 74 views
2

有人可以幫忙解決動畫問題,我想不通。我有以下代碼,我正在執行「拉刷新」。UITableView contentInset的動畫不一致

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:0.3]; 
self.tableView.contentInset = UIEdgeInsetsMake(50, 0, 0, 0); 
[UIView commitAnimations]; 

這種方法也被調用在viewDidAppear。而這也正是我的問題出現在應用程序的初始加載,它的偉大工程。但是,如果視圖在彈出視圖或解除模態視圖後出現,則不會生成動畫。我之前和之後都設置了斷點,所以我知道它正在調用,但沒有動畫。我也嘗試了其他動畫代替contentInset,並且它們工作正常。如果我將內容嵌入改爲負值,它不適用於初始負載,但在所有其他情況下都很好(顯然朝着相反的方向移動)。

我真的很感謝所有幫助

回答

2

所以,我列出的動畫代碼似乎仍然奇怪的行爲,但至少我的目的是通過添加

if (feedTableView.contentOffset.y < 100 && feedTableView.contentOffset.y >= 0) 
    [feedTableView setContentOffset:CGPointMake(0, -50) animated:YES]; 

的底部提供服務。這樣,如果當視圖出現時tableView當前接近頂部,則contentInset被更改爲包括「加載」標題,然後tableView滾動到該標題的頂部。