2012-05-16 30 views
3

我已經硬編碼一個「加載」單元格作爲我的表視圖的最後一個單元格,當這是生成時我調用一些方法來加載從Web服務的新數據,當我得到響應I保存數據,發送通知並在我的表視圖上調用reloadData。動態UITableView的ContentOffset

我想做同樣的事情,但爲我的表的第一個單元格。

我的表格是時間的函數,所以向下滾動會顯示日後的日期項目,並且這個想法是讓用戶滾動更高並加載更早的項目。

我似乎無法成功設置一個初始偏移來隱藏這個加載單元,因爲如果它被顯示,那麼它會開始加載較早的數據。我知道scrollToRowAtIndexPath:atScrollPosition:animated:,但我找不到合適的位置來調用它(索引路徑:1:0行1節0)。

正如我前面提到的,我需要在任何單元格被調用創建之前設置這個可見部分。

有沒有人在表視圖的開始嘗試過這種單元格?

如何在第一個單元甚至被調用加載之前設置我的表視圖的初始可見部分?

我應該在這裏做更特別的事嗎?就像有一個tableviewHeader,並顯示時,我插入一行索引路徑0:0這是加載程序,並在我reloadTable後刪除它?

回答

5

我使用了contentInset,而不是在viewDidLoad中抵消。

[self.tableView setContentInset:UIEdgeInsetsMake(-50,0,0,0)]; 

當行索引路徑[0,0]產生我重置的插圖,這種情況發生在tableView:cellForRoWAtIndexPath:

[self.tableView setContentInset:UIEdgeInsetsMake(0,0,0,0)]; 

每次在表視圖消息傳遞reloadData之前我把插入回:

- (void)reload{ 
    [self.tableView setContentInset:UIEdgeInsetsMake(-50,0,0,0)]; 
    [self.tableView reloadData]; 
} 

這意味着我的裝載電池永遠只能坐在屏幕上時,它的觀察,當新的數據進來,表重載我把偏移回來。

相關問題