如何隐藏表头,并在插入/删除后将其隐藏

时间:2011-10-22 17:19:14

标签: ios uitableview core-data uiscrollview

我发现,UITableView修改了contentSize属性,我不能自己设置它。

Stack Trace

这是我的调用堆栈。此调用后contentSize被修改。我不想要它,因为我想隐藏标题,所以我需要向下滚动视图,为了使它我设置contentSize略高于可见,以便能够向下滚动一点。

如何隐藏表头,并在插入/删除后隐藏它?通过隐藏我的意思是表头最初“隐藏”但是当你滚动到顶部时显示。

我正在使用NSFetchedResultsController来获取CoreData数据。

2 个答案:

答案 0 :(得分:0)

您可以为header的大小实现tableview委托方法并返回0.它会这样:

-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
    return 0;
}

这会将每个部分的标题设置为零。您还可以使用heightForFooterInSection:

以相同的方式编辑页脚大小

答案 1 :(得分:0)

看起来在调用controllerDidChangeContent之后,iOS私有代码会修改contentSize。

仅供记录。这是我的解决方案(searchView是我要隐藏的视图):

-(void)scrollViewDidScroll:(UIScrollView *)scrollView 
{
    if (scrollView.contentSize.height <= scrollView.frame.size.height)
    {
        [scrollView setContentOffset:CGPointMake(0, self.searchView.frame.size.height)];        
        [scrollView setContentSize:CGSizeMake(scrollView.contentSize.width, tableView.frame.size.height + self.searchView.frame.size.height)];
    }
}