2016-02-25 51 views
2

我使用scrollRectToVisible:UITableview滾動到頂部上重載過高?

[self.tblArticle scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:YES]; 

和/或setContentOffset:

NSIndexPath* top = [NSIndexPath indexPathForRow:NSNotFound inSection:0]; 
    [self.tblArticle scrollToRowAtIndexPath:top atScrollPosition:UITableViewScrollPositionTop animated:YES]; 

和/或本:

[self.tblArticle setContentOffset: CGPointZero animated: YES]; 

以(試圖)滾動到頂部我重新加載後的tableView。但有時候它太高了,所以我看到桌子上面有太多空白。我的表格在單元格行上方有一個標題。 當我向下滾動一下然後開始重新加載時,它會變得太高。如果我在上面,滾動是好的。但是在重新加載之前,我得到的更低,在標題上方可以看到更多的空白空間。 現在我計算我有多低我,然後設置是這樣的:

CGFloat height = 0; 
    if(self.selectedCategoryID > 2) 
     height = 250; 
    [self.tblArticle scrollRectToVisible:CGRectMake(0, height, 1, 1) animated:YES]; 

這是veeery壞。感謝您的任何建議!

編輯我使用重載的UITableView像這樣:開始

// Reload table 
[self.tblArticle reloadData]; 

This is the wanted result

But I get this instead...

+0

嘗試包括髮生的事情相比,你期待什麼作爲的一些屏幕截圖。您是否使用刷新控件重新加載表格? – beyowulf

+0

嗨@beyowulf。我添加了一些截圖來演示問題。第一個顯示了我想實現的目標,第二個顯示了我實際獲得的目標。 – iPhoneNoob

+0

如何以及在哪裏設置tableHeaderView? – beyowulf

回答

0

請試試這個滾動的UITableView到頂部。

[mainTableView setContentOffset: CGPointZero animated: YES]; 
+0

嗨!謝謝回覆。試過 - 相同的結果。我也會用這個更新我的問題。謝謝! – iPhoneNoob

1

試試這個:

[_mainTableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:YES]; 
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ 
     [_mainTableView setContentOffset:CGPointZero animated:YES]; 
});