2014-05-13 63 views
3

我做了一個UITableView,並設置了「委託」和「數據源」每次我打電話reloadData時,它進入方法:viewForHeaderInSection:不調用時reloadData:被稱爲

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    return [self.headersList count]; 
} 

而且方法:

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    SectionInfo *headerInfo = (self.headerInfoArray)[section]; 
NSInteger numOfObjectsInSection = [[headerInfo.list objectsInList] count]; 
    return headerInfo.open ? numOfObjectsInSection : 0; 
} 

然後停下來!它不會進入ViewForHeaderInSection:方法。我也實施方法:

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section 
{ 
    return SECTION_HEADER_HEIGHT; 
} 
  • 知道我使用打開/關閉部分功能!所以首先關閉所有部分,每個部分的行數是0,但返回的部分數是正確的(當部分被打開時,行數被更新)。
  • 它顯示標題視圖的唯一方法是等待一段時間,直到它自動重新加載!或者我向上或向下滑動!

viewForHeaderInSection方法:

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{ 
    UISectionHeaderView *sectionHeaderView = [[UISectionHeaderView alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, SECTION_HEADER_HEIGHT)]; 

    SectionInfo *sectionInfo = (self.headerInfoArray)[section]; 
    sectionHeaderView.open = sectionInfo.open; 
    sectionInfo.headerView = sectionHeaderView; 

    sectionHeaderView.titleLabel.text = [NSString stringWithFormat:@"%@ (%lu)",sectionInfo.list.title, (unsigned long)[sectionInfo.list.objectsInList count]]; 
    sectionHeaderView.section = section; 
    sectionHeaderView.delegate = self; 

    return sectionHeaderView; 
} 
+0

我假設你設置你的類都是'dataSource'和''UITableView'的'delegate',對吧? – dasblinkenlight

+0

您也可以使用重載部分方法嘗試不同的方法。向我們展示您的表視圖頁眉和頁腳視圖數據源回調,以查看是否存在問題。 – J2theC

+0

呀,dataSource和delegate沒有錯。這種行爲只發生在所有部分都關閉時。 – a7md

回答

11

你應該實現heightForHeaderInSection:並設置高度爲標頭值> 0

+0

謝謝。這可以幫助我... –

0

同樣的問題發生與我,是因爲的tableview沒」 t找到高度爲標題,但正如我使用自動高度計算xCode 9,我無法給出任何明確的身高值。一些實驗後,我得到了解決,我們必須重寫此方法,

-(CGFloat)tableView:(UITableView *)tableView 
     estimatedHeightForHeaderInSection:(NSInteger)section 
{ 
     return 44.0f; 
} 

雖然我檢查兩個選項

  1. 高度自動計算
  2. 自動預測的高度計算

故事板如蘋果說,但我仍然得到這個奇怪的錯誤。

請注意:此錯誤是隻能顯示在IOS-10版本不IOS-11版本。也許這是來自xCode的錯誤。謝謝

相關問題