我发现,UITableView修改了contentSize
属性,我不能自己设置它。
这是我的调用堆栈。此调用后contentSize
被修改。我不想要它,因为我想隐藏标题,所以我需要向下滚动视图,为了使它我设置contentSize
略高于可见,以便能够向下滚动一点。
如何隐藏表头,并在插入/删除后隐藏它?通过隐藏我的意思是表头最初“隐藏”但是当你滚动到顶部时显示。
我正在使用NSFetchedResultsController
来获取CoreData数据。
答案 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)];
}
}