我做了一個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;
}
我假設你設置你的類都是'dataSource'和''UITableView'的'delegate',對吧? – dasblinkenlight
您也可以使用重載部分方法嘗試不同的方法。向我們展示您的表視圖頁眉和頁腳視圖數據源回調,以查看是否存在問題。 – J2theC
呀,dataSource和delegate沒有錯。這種行爲只發生在所有部分都關閉時。 – a7md